簡體   English   中英

在回調內處理異常的正確方法是什么?

[英]What is the proper way to handle exception inside callback?

我有一個帶異常實例的回調。 目前我用這種方式處理它,但我認為有更好的方法。 想聽聽Java專家的一些評論。 =)

...
onError(Exception e) {
   if (e instanceof IOException) {
      ioe = (IOException)e;
      // do smth with ioe
   } else if (e instanceof MyException) {
      mye = (MyException)e;
      // do smth with mye
   }
}
...

我不是100%肯定你在“回調內部處理異常”的意思,但你提供的onError方法可以更好地表達如下:

...
onError(Exception e) {
   try {
       throw e;
   } catch (IOException ioe) {
      // do smth with ioe
   } catch (MyException mye) {
      // do smth with mye
   }
}
...

我認為您可以使用異常的子類覆蓋“onError”:

interface MyExceptionHandler  
{
    onError(Exception e) {
          // Default exception
    }
    onError(IOException ioe) {
          // do smth with ioe
    }
    onError(MyException mye) {
          // do smth with mye
    }
}

好吧,你可以嘗試使用多個catch塊,每個catch塊處理比他之后的更小的異常,這樣你就不再需要帶有ifs的樣板代碼:

try {
   doSomething();    
} catch(IOException ioe) {
   log.error("File not found"+ioe.getmessage();
} catch(Exception e) {
   //... etc
}

暫無
暫無

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

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