我有一个GWT项目,我有一个像这样的方法:
@Override
public void onFailure(Throwable caught)
{
if (caught.getClass()== MyException.class)
{
//do specific stuff
}
else
{
// do generic stuf
}
}
MyException
是自定义的异常。我的一位同事告诉我,因为这将转换成JavaScript,“没有类”,这不是一个好主意,我应该使用:
@Override
public void onFailure(Throwable caught)
{
try {
throw caught;
} catch (MyException e) {
//do specific stuff
} catch (Throwable t) {
//do generic stuff
}
}
由于第一种方式确实有效(至少在我身边),如果我继续使用它会有任何问题,还是应该采用第二种方式?
答案 0 :(得分:1)
您可以使用instanceof
运算符,它可以运行 -
@Override
public void onFailure(Throwable caught)
{
if (caught instanceof MyException)
{
//do specific stuff
}
else
{
// do generic stuf
}
}
答案 1 :(得分:0)
我个人更喜欢第二种方式。
您没有捕获的任何异常都可以由全局UncaughtExceptionHandler处理。
GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
public void onUncaughtException(Throwable e) {
// TODO Global Exception Handling ...
}
});