当前位置: 技术问答>java相关
请教throws的用法,我的参考书上说得不明白。
来源: 互联网 发布时间:2015-01-31
本文导语: | 我的理解是这样的…… 对方法内部会抛出的各种异常,如果应该让这个方法自己处理的,就catch他;如果不应该让这个方法处理,就throws他,让调用这个方法的方法去处理…… | 不错,同意ender ...
|
我的理解是这样的……
对方法内部会抛出的各种异常,如果应该让这个方法自己处理的,就catch他;如果不应该让这个方法处理,就throws他,让调用这个方法的方法去处理……
对方法内部会抛出的各种异常,如果应该让这个方法自己处理的,就catch他;如果不应该让这个方法处理,就throws他,让调用这个方法的方法去处理……
|
不错,同意ender
|
在方法内部用throw 抛出异常,但在类声明时 需 throws 异常
class myclass throws MyException{
public myMethod(){
aaa
throw new MyException();
}
}
大体是如此,throw 和 throws 是自己的类内部需要抛出异常时用的
class myclass throws MyException{
public myMethod(){
aaa
throw new MyException();
}
}
大体是如此,throw 和 throws 是自己的类内部需要抛出异常时用的
|
在方法内部用throw 抛出异常,但在类声明时 需 throws 异常
class myclass throws MyException{
public myMethod(){
aaa
throw new MyException();
}
}
大体是如此,throw 和 throws 是自己的类内部需要抛出异常时用的
class myclass throws MyException{
public myMethod(){
aaa
throw new MyException();
}
}
大体是如此,throw 和 throws 是自己的类内部需要抛出异常时用的
|
chinaLinCT(牛牛)的说法似有不妥之处。
“在方法内部用throw 抛出异常,但在类声明时 需 throws 异常”?
方法内部用throw 抛出异常,同时CATCH异常的话,不必在声名时throws 异常。
如果在某个方法中throw了一个异常,但是又不想在该方法中处理的话,就可以再次抛出(throws),让调用它的方法来处理。调用它的方法如果觉得可以处理的话,就catch,否则可以再次抛出(throws),直到有方法处理为止。如果一直到main方法都进行抛出而没有处理的话,编译正确,但运行会产生异常。
“在方法内部用throw 抛出异常,但在类声明时 需 throws 异常”?
方法内部用throw 抛出异常,同时CATCH异常的话,不必在声名时throws 异常。
如果在某个方法中throw了一个异常,但是又不想在该方法中处理的话,就可以再次抛出(throws),让调用它的方法来处理。调用它的方法如果觉得可以处理的话,就catch,否则可以再次抛出(throws),直到有方法处理为止。如果一直到main方法都进行抛出而没有处理的话,编译正确,但运行会产生异常。
|
同意forest的说法
|
“如果一直到main方法都进行抛出而没有处理的话,编译正确,但运行会产生异常。”
——是这样吗?你试试……
——是这样吗?你试试……
|
显式异常
|
throws 只是告诉调用者,可能会抛出异常,并提醒调用者对这种可能的异常进行处理,至于你是处理还是继续扔给上级调用者,那就是你的事了,并不是一定会抛出异常。
有一些异常是在编译的时候不能被确定是不是会被抛出的,只有在运行时并在特定条件下(如程序逻辑处理错误)才会产生,这种是运行时异常,都继承自 RuntimeException 类,此种异常不需要用 throws 来声明。
还有一种是 Error,用来标记一些严重的错误,和 RuntimeException 一样不需要显示申明,但它是是继承自 Throwable。
有一些异常是在编译的时候不能被确定是不是会被抛出的,只有在运行时并在特定条件下(如程序逻辑处理错误)才会产生,这种是运行时异常,都继承自 RuntimeException 类,此种异常不需要用 throws 来声明。
还有一种是 Error,用来标记一些严重的错误,和 RuntimeException 一样不需要显示申明,但它是是继承自 Throwable。