系统总会出现一些异常,对这些异常,我们应该选择合适的处理方式,来保证系统的可靠性。
1、Throwable是所以异常的基类。Throwable对象分为两种error表示编译时异常和系统异常,Exception是可以被抛出来的基本类型,在类库、自定义方法和运行时都可能出现。Exception分为RuntimeException和受检异常,受检异常需要用户自己显示处理,或捕获,或抛出,编译器会对受检异常进行检查。
2、捕获异常:
try{
//code to do
}catch(Exception e){
//handle exception
}finally{
//do something either exception occur or not
}
try{}标识需要捕获异常的地方,catch是对异常的处理,finally是无论有没异常都会执行的代码,可以做一些资源释放的操作。如果没有捕获抛出的受检异常,必须在方法声明处使用throws关键字,后面跟可能出现的异常。异常抛出时,异常处理系统会找出“最近”的处理程序,找到后就不会继续匹配了。派生类也可以匹配基类的处理。如果try里有return语句,finally里的代码也会执行。
3、自定义异常,必须从已知的异常中继承。printStackTrace()方法用来打印异常的轨迹,调试的时候十分有用。也可以用getStackTrace()来获取异常轨迹。异常处理应该是为了方便处理程序,将异常处理防止统一的地方,其他地方只是专注于业务逻辑的处理。