簡體   English   中英

向調用方法拋出錯誤!

[英]Throw error to calling method!

我有一個線程類,在run方法中我正在調用Web服務,該調用在try catch中

try {
    // Make webs service call
}
catch (Exception e) {
    throw e;
}

Eclipse不喜歡這樣!

基本上,我想將此錯誤扔給調用方法並在那里處理?

如果拋出一個檢查的異常,則必須使用try / catch或將其聲明為方法簽名中的異常來處理該異常。 參見例外教程 ; 特別是關於三種例外的部分

那是因為您要覆蓋run()並且覆蓋將不允許您聲明要拋出的更廣泛的異常。 您可以將其包裝在RuntimeException

做類似的事情

 new Thread(new Runnable() {

            public void run() {
                try{
                   //your code
                }catch(Exception ex){
                    throw new RuntimeException(ex);//or appropriate RuntimeException
                }
            }
        }).start();

    }

是的,已檢查java.lang.Exception ,因此您不能引發它(因為Runnable.run在其throws子句中沒有聲明任何Exception;它沒有throws子句)。 您只能拋出RunTimeExceptions。 您必須處理Checked Exceptions-這是Java強制您執行的操作。 一種方法是將Checked Exception轉換為RunTimeException,以便將其拋出。 但是請不要忘記這是一個單獨的線程,因此請注意您的處理邏輯。

public class ThreadFun implements Runnable {

    public void run()  {

        // LEGAL
        try {

        } catch (RuntimeException e) {
            throw e;
        }

        // NOT LEGAL
        try {

        } catch (Exception e) {
            throw e;
        }           
    }
}

除了捕獲異常之外,添加方法方法簽名時throws Exception 這將強制調用方法改為捕獲異常。

暫無
暫無

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

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