如果使用try / catch,是否需要THROWS?

时间:2014-05-01 21:34:34

标签: java exception-handling

如果我的代码中有try / catch块,则需要在方法头之后有一个throws语句吗?

如果不需要,那么什么时候/为什么我需要使用投掷? - 它只是为了阻止编译器失败吗?(即我告诉它我期待一个错误,没关系)

2 个答案:

答案 0 :(得分:3)

throws关键字的目的是当使用try块来处理方法本身中的异常时,这是不正确的。

当您的代码抛出已检查的异常时,您必须使用try块来捕获它,或者使用方法上的throws关键字来宣告它会向任何方法抛出异常的事实可能会调用它,因此它必须使用try块来捕获它或使用throws关键字来传递降压。你不能两者都做(除非你处理多个例外。)

这是你必须做出的设计决定。你正在编写的方法知道如何处理异常并且这样做,或者它没有,它会将异常抛给它的调用者。

答案 1 :(得分:0)

当您的方法有一些抛出异常的代码段时,您的方法有两个选项:

  

捕获方法体中的异常并处理它,

  

将异常抛出到调用方法的地方。

在第一个实例中,您的方法将有一个try / catch块来处理异常。在第二个实例中,您的方法将使用throws声明,并且将调用此方法的方法将必须使用try / catch块。