[英]Is it possible to re-throw an error in the calling method in RxAndroid?
[英]Throw error to calling method!
我有一個線程類,在run方法中我正在調用Web服務,該調用在try catch中
try {
// Make webs service call
}
catch (Exception e) {
throw e;
}
Eclipse不喜歡這樣!
基本上,我想將此錯誤扔給調用方法並在那里處理?
那是因為您要覆蓋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.