.Net轉Java.03.受查異常和非受查異常

轉到Java之後發現一個很妖的事情,爲啥有些方法後邊有個 throws XXXXExceptionide

好比下面的代碼url

    @Override
    public <T> ResponseEntity<T> exchange(String url, HttpMethod method,
            HttpEntity<?> requestEntity, Class<T> responseType, Object... uriVariables) throws RestClientException {

        RequestCallback requestCallback = httpEntityCallback(requestEntity, responseType);
        ResponseExtractor<ResponseEntity<T>> responseExtractor = responseEntityExtractor(responseType);
        return execute(url, method, requestCallback, responseExtractor, uriVariables);
    }

這個是.NET沒有的一個語法,受查異常spa

 

這是摘自《Java核心技術》的解釋,我感受很明確了code

Java語言規範將派生於Error類和RuntimeException類的全部異常稱爲非受查(unchecked)異常【上圖中的綠色部分】,全部其餘的異常稱爲受查(checked)異常【上圖中的藍色部分】blog

編譯器將覈查是否爲全部受查異常提供了異常處理器。編譯器

受查異常要麼方法內部處理,要麼經過方法的聲明,提示調用方處理(好比文件找不到等狀況)it

非受查異常要麼不可控制(好比OOM),要麼避免發生,其實理論上也是徹底能夠避免發生的(好比空引用的狀況)io

相關文章
相關標籤/搜索