try {
//可能产生异常的代码
} catch (Type1 id1) {
//处理 Type1 异常的代码
} catch (Type2 id2) {
//处理 Type2 异常的代码
}
异常机制的最大好处: 清晰地分开了处理正常的业务逻辑代码和遇到情况时的代码
Java 中用try{}
来包裹可能出现异常的代码块, 并用 catch(Type id){}
捕捉并处理异常.
在 catch(type id){}
的代码块中, 可以调用 id 的 一些方法, 比如getMessage()
, printStackTrace()
来获得相关的信息.
如果在当前层面上无法全部处理, 可以通过 throw
再次将异常抛向上一层
//必须声明它会抛出 BadException
public void takeTisk() throws BadException {
if(abandonallHopes) {
//创建 Exception 对象并抛出
throw new BadException();
}
}
public void crossFingers() {
//如果不用 try - catch包裹起来, 就必须声明 throws BadException
try {
anObject.takeRisk();
} catch (BadException ex) {
System.out.println("Aaargh");
ex.printStackTrace();
}
}
catch(Exception e){}
会捕捉到所有的异常父类中的某个 Method 在子类中覆盖时, 必须保证子类中的同名方法不声明更多的异常抛出 子类的构造器中必须声明父类的全部异常