throws關鍵字首先用在函數聲明中,在返回類型之前,比如標準庫中map的函數簽名:
然後在函數內部,如果有可能的異常,可以拋出這個異常。通常,您可以使用枚舉來表示壹類異常。此枚舉可以實現錯誤協議,例如:
這樣,通過throw函數中可能出現的異常,函數可以反饋錯誤,迫使調用這個函數的程序員處理所有可能出現的錯誤,降低維護成本。
Do-catch用於處理可能的異常:
Rethrows關鍵字只起到傳遞異常的作用。在函數或方法中,您可以通過調用可以引發的函數來傳遞可能的異常,如下例所示:
觀察函數語句,其實有壹個函數可以作為參數拋出,然後在返回類型前面加上關鍵字throws。可以拋出的函數直接在函數內部調用,傳遞可能的異常,處理拋出的函數或方法與處理拋出的相同:
Throw在函數或方法中拋出異常,因此調用方必須顯式處理可能的異常。Throws本身並不拋出或處理異常,只是起到傳遞異常的作用,最終返回到標準庫中的map函數。以上面為例:
這裏在map的函數參數中使用throw,當元素小於0時拋出異常。