如果我的代码中有try / catch块,则需要在方法头之后有一个throws语句吗?
如果不需要,那么什么时候/为什么我需要使用投掷? - 它只是为了阻止编译器失败吗?(即我告诉它我期待一个错误,没关系)
答案 0 :(得分:3)
throws
关键字的目的是当使用try
块来处理方法本身中的异常时,这是不正确的。
当您的代码抛出已检查的异常时,您必须使用try
块来捕获它,或者使用方法上的throws
关键字来宣告它会向任何方法抛出异常的事实可能会调用它,因此它必须使用try
块来捕获它或使用throws
关键字来传递降压。你不能两者都做(除非你处理多个例外。)
这是你必须做出的设计决定。你正在编写的方法知道如何处理异常并且这样做,或者它没有,它会将异常抛给它的调用者。
答案 1 :(得分:0)
当您的方法有一些抛出异常的代码段时,您的方法有两个选项:
捕获方法体中的异常并处理它,
或
将异常抛出到调用方法的地方。
在第一个实例中,您的方法将有一个try / catch块来处理异常。在第二个实例中,您的方法将使用throws声明,并且将调用此方法的方法将必须使用try / catch块。