是谁抛出的异常?
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
当你的程序代码调用有风险的方法时(声明带有抛出异常的方法),此时该方法将处理异常的动作交给你来完成。实际上这两个方法可能都是你自己写的。由谁写的程序其实并不重要,重点在于哪个方法抛出异常与哪个方法处理它。
在编写可能会抛出异常的方法时,它们都必须声明有异常。
1、有风险、会抛出异常的程序代码:
public void takeRisk() throws BadException {
if (abandonAllHope) {
throw new BadException();
}
}
2、调用该方法的程序代码:
public void crossFingers() {
try {
anObject.takeRisk();
} catch(BadException ex) {
System.out.println("此处有BadException异常!");
}
}
编译器会核对每件事,除了 RuntimeExceptions之外。编译器保证: 1) 如果你有抛出异常,则你一定要在方法的签名上使用throws来声明这件事。 2) 如果你调用会抛出异常的方法,你必须得确认你知道异常的可能性。将调用包裹在try/catch块中是一种常见的做法。
在线练习
{$ activeFileHint $}