try{}catch(){}finally{}
异常的概念:Exception
所谓异常就是程序运行过程中出现了意料之外的情况。
Error:错误,无需处理。比如:断电
Exception:异常,需要处理和捕获的
非检查异常(非受检异常、未检查异常):可以避免 不强制必须处理
检查异常(受检异常、已检查异常):不可避免 必须进行异常处理,否则无法通过编译
非检查异常(非受检异常、未检查异常):可以避免,可以编译,但运行时抛出异常
如:ArithmeticException 算术异常
ArrayIndexOutOfBoundsException 数组下标越界异常
NullPointerException 空指针异常
ClassCastException 类型转换异常
InputMismatchException 输入类型不匹配异常
ClassNotFoundException 类没有找到异常
FileNotFoundException 文件没有找到的异常
检查异常(受检异常、已检查异常):不可避免,编译时抛出异常,没法运行
如:Class.forName("A"); //查找类A,加载类A
通常在finally代码块里,放一些释放资源的工作,finally 在程序中无论如何都会被执行
处理异常的方式:
try 是必须有的。catch和finally都可以单独存在,或者二者共存。
break:跳出循环
return:结束方法
finally:try{}语句块必须要执行的代码,遇到return也不例外,除非遇到 System.exit() 才不会执行
System.exit():结束程序
子类的覆盖方法不能比父类的被覆盖方法抛出更多的异常,就是子类抛出的异常不能超过父类。
如果父类抛出的异常是Exception,则子类可以抛出所以的异常
Exception类中定义了一个message属性,并提供了一个
getMessage()方法获得message属性的值,同时提供了一个构造方法对其属性赋值Exception
一:
三种:
1.try{}catch(Exception ex){}finally{}
2.try{}finally{}
3.try{}catch(Exception ex){}
有catch必须要有try,但是有try可以没有catch
二:
声明抛出异常,抛给方法调用处,如果没有方法处理该异常,则最终由JVM来处理
(如果所以得方法调用处都不去捕获和处理异常,最终抛给JVM处理)
public static void main(String[] agrs) throws Exception{}
throws 声明处理异常
throws 后面可以声明多个异常
throws 可以应用父类异常代替子类异常
捕获异常的原则:1.先捕获子类的异常,在捕获父类的异常
2.如果有方法重写,子类重写的方法不能抛出比父类更多的异常(级别)
try{}catch(){}fianlly{} 一个try语句块中,可以有多个catch语句块
try-catch语句块可以嵌套使用
java 的异常继承结构:Throwable包括 Error和 Exception
Error:错误
Exception:程序运行中出现类意料之外的情况
Exception:包括{RuntimeException(非检查性异常)}和{(IO,Network,AWT..)等非检查性异常}
捕获处理异常的方法:
try{
//需要捕获异常的代码
}catch(Exception ex){
//处理异常
ex.printStackTrace(); //打印异常堆栈
}finally{
//必须要执行的语句
//通常放程序释放资源的代码
}
1.用try{}catch(){}处理异常
2.声明抛出异常:public void fun() throws Exception{ }
throws 声明抛出异常
throw 抛出异常对象。 throw new Exception();
注意事项:
1.如果有方法重写,子类重写的方法不能抛出比父类更多的异常
2.处理异常的原则:先捕获子类异常,再捕获父类异常
自定义异常:extends Exception
让自定义异常继承Exception
e.getMessage(); //获得异常消息
e.printStackTrace(); //处理异常
共同学习,写下你的评论
评论加载中...
作者其他优质文章