簡體   English   中英

拋出異常的方法:實際處理的位置是什么?

[英]Method with throws Exception: Where is it actually handled?

這是一個示例代碼,我在這里拋出一個異常,由於某種原因,它沒有try / catch代碼塊就可以正常工作。

我是否必須在此方法“EntryDelete”中處理此問題,或者我必須處理調用此方法的方法嗎? 如果是這樣我可以看到一個例子,那里我需要輸入什么? 這樣做的可接受的語法或方法是什么?

public boolean EntryDelete(int entryId) throws SQLException{
    this.open();
    kDatabase.delete(kENTRY_TABLE, kENTRY_ENTRY_ID + "=" + entryId, null);
    this.close();
    return true;            
}   

編輯:在方法的內部和外部處理異常的想法是什么?

在方法內部處理的好處是什么,在方法之外處理它的好處是什么?

謝謝

拋出的異常由此方法的調用者處理(進一步拋出或捕獲),而不是此方法本身。 當然,你可以在這里添加try-catch來處理它,但是因為它當前是你的方法強制調用者處理可能拋出的異常。

回答您添加的問題:

“在方法內處理的好處是什么,在方法之外處理它的好處是什么?”

遺憾的是,我能想到的最全面的正確答案是,在方法中處理異常的優點是不必在方法之外處理它。 一般來說,越早處理異常就越好,因為你通常不想強迫任何調用你的方法的人為任何非必要的異常做准備。

既然方法有

throws SQLException

在簽名中,調用此方法的方法必須處理異常。

編輯:有沒有經驗法則,但是您可以使用下面的指南

如果客戶端可以采取一些備用操作從異常中恢復,則拋出異常。 如果客戶端無法執行任何有用的操作,請處理異常。 有用的,我的意思是采取措施從異常中恢復,而不僅僅是記錄異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM