程序正常的情况下可以有顺利运行,遇到用户非法输入,文件找不到磁盘空间已满、数据库连接错误等问题,如果程序不处理,就会崩溃。
异常的类型
1,异常的根类型:java.lang.Thtowable
只有它或它的子类类型,才能用于catch(异常类型e)语句中的异常类型,用于“捕获异常”
换句话说,如果要自定义异常,必须继承Throwable或他的子类
Exception:合理的应用程序应该通过代码避免或捕获来解决的异常。
-
-
例如:ArrayIndexOutOfBoundsException数组下标越界异常
-
例如:NullPointerException空指针异常
-
例如:ClassCastException:类型转换异常
-
例如:ArithmeticException:算术异常
-
例如:InputMismatchException:输入不匹配异常
-
例如:NumberFormatException:数字格式化异常
-
-
编译时异常:除了运行时异常都是编译时异常
-
例如:IOException:输入输出异常
-
例如:FileNotFoundException:文件找不异常
-
例如:SQLException:sql执行错误
-
和异常相关的几个关键字
1,try:尝试执行可能会发生异常的代码
2,catch:尝试捕获try中发生的异常,
3,finilly:无论try中是否发生异常,也无论catch是否可以捕获异常,也不管try和catch中是否有return语句,都要执行,除非在try或catch中执行了System.exit(0)语句
4,throw:用于手动抛出异常
5,throws:表示某个方法内部都没有处理xx异常,抛给调用者处理,在方法的签名中,显示声明抛出哪些异常
自定义异常
2、尽量保留两个构造器:无参和有参(message)
3、加序列化版本ID
4、自定义异常类型的对象只能使用throw语句抛出