2011-04-16 71 views
1

如何编写可抛出多个检查java异常的UserException类? 我应该扩展Throwable类吗? 如果你能给我一个简单的例子说明抛出两个例外,那会更好。 这个问题的主要目的是我想减少不。在代码中尝试和捕获块语句。如何编写抛出多个检查异常的UserException

回答

0

每个线程最多可以有一个例外,那就是目前被抛出,尚未抓到。告诉我们你想做什么的完整故事,否则我们不得不猜测太多。

0

罗兰德是对的,一种方法只能抛出一个例外。

也许您正在寻找异常层次结构?

0

有一种方法抛出“多个例外”,有点。你可以抛出一个异常封装到另一个,就像这样:

throw new UserException(new SomeException()); 

当这个被捕获,捕手可以找到这样的原因:

catch (UserException e) { 
    Exception cause = e.getCause(); // cause is an instance of SomeException 
} 

这样捕手同时访问异常。

定义UserException为扩展例外:

public class UserException extends Exception { 

    private UserException(String message, Throwable cause) { 
     super(message, cause); 
    } 

    private UserException(Throwable cause) { 
     super(cause); 
    } 
} 
0

不要延长的Throwable。如果您希望它成为检查的异常,请扩展异常,如果您希望它成为未经检查的异常,请扩展RuntimeException。

我同意其他答案,可能你需要一个异常层次结构(查看IOExceptions是如何工作的,还有一个FileNotFoundException,它扩展了IOException,因此你可以捕获IOException并获取它们)。提供更多关于你想要的行为的信息。