二、异常处理
1、理解异常
程序在运行过程中出现的问题称为异常(Exception),出现异常时的处理叫异常处理
JAVA的异常分为:
Error:java应用程序本身无法恢复的严重错误,程序不需要捕获、处理这些严重错误
Exception:java程序抛出和处理的非严重异常,分为运行时异常(RuntimeException)和检查异常(CheckException),也称非运行时异常
所有的异常都继承至java.lang.Throwable类
Throwable
---- Error
---- Exception
---- RuntimeException
---- CheckException
2、Exception
需要程序员处理的,如果此类异常被捕获,程序在运行时是不会崩溃的,如果没有捕获(不做异常处理),可能导致整个程序运行崩溃
Exception异常分为2类:
运行时异常:正常编译,但程序运行时出的问题,又称为非检查异常
检查异常:此异常是在编写代码时就会以红色波浪线提示,需要做异常处理,又称非运行时异常
常见的运行时异常:
java.lang.ArrayIndexOutOfBoundsException:数组的下标越界异常
java.lang.ArithmeticException:数学运算异常
java.lang.NullPointerException:空指针异常
java.lang.ClassCastException:类型转换异常
java.lang.NumberFormatException:数字格式化异常
java.util.InputMismatchException:输出信息类型不匹配异常
常见的检查异常:
java.io.FileNotFoundException:文件找不到异常
java.io.IOException:输入输出异常
java.lang.NoSuchMethodException:方法未找到异常
java.io.FileNotFoundException:文件找不到异常
java.io.IOException:输入输出异常
java.lang.NoSuchMethodException:方法未找到异常
3、异常处理
异常处理的三种结构:
try{
//可能出现异常语句块
}catch(SomeException e){// 特指某些特定的异常
//当捕获到SomeException类型的异常时执行的语句块,通常是打印该异常信息
}
catch语句可以多个,但如果是Exception类型来捕获,必须为最后一个catch
如果try语句块中的代码没有异常,则try语句块执行完毕后,catch中的语句块不执行;如果try语句块有异常,则try语句块中发生异常之后的代码不执行,而由相应的catch语句进行捕获,catch中的代码会执行
try…catch…finally
try {
//可能抛出异常的语句块
}catch(SomeException e){
//当捕获到异常时运行的语句块
}finally {
//不管是否发生异常都会执行的语句块
}