2.1、异常
异常的概念:
异常:Exception
概念:在程序执行的时候,代码中产生的不正常事件,导致程序无法正常的执行。
程序的执行流程:
step1:JVM创建一个主线程,调用主函数,程序的入口:main()...
step2:按照main方法中的内容,从上向下执行,逐行执行
创建对象。。。
分支语句。。。
循环语句。。
方法调用。。。。。
step3:当main方法中的所有代码全部执行完毕,程序正常结束了。JVM退出了。
程序的执行过程中,产生了异常,由JVM负责创建该类型的异常对象并抛出,打断程序的执行。
2.2、异常的分类
Throwable类:可抛出的。
|————Error:错误。(系统级别的问题,程序员解决不了)
|————Exception:异常。(程序员需要解决的)
Exception:异常
|————受检异常,编译在编译程序时候,能够检查出来的异常。外部的因素导致的异常。
IOException:IO异常
FileNotFoundException:文件不存在的异常
SQLException:数据库异常
必须处理,程序才能运行。
非受检异常,又叫运行时异常(RuntimeException)。编译器在编译程序的时候,不检查。运行时候可能暴露出来的异常。代码中的逻辑问题导致的异常。
ArithmeticException:算术异常
NullPointerException:空指针异常
ClassCastException:类转型失败异常
ArrayIndexOutOfBoundsException:数组下标越界异常
StringIndexOutOfBoundsException:字符串下标越界异常
InputMismatchException:类型不匹配异常
NumberFormatException:数字格式化异常
step1:编写源代码
step2:编译器进行编译:产生字节码文件
javac HelloWorld.java--->HelloWorld.class
step3:解释器去执行。
java HelloWorld
2.3、捕获异常
捕获的语法结构:
try{
//try语句块中,有可能产生异常的代码,尝试着执行
}catch(异常类型1e){
//对异常处理
}catch(异常类型2e){
//
}...
finally{
//此处的操作是可选的,
这里的代码,一定会被执行的。。
}
解释说明:关键字
try:尝试的意思,尝试着执行代码块中的代码
catch:抓取,捕获,捕获异常对象。。
finally:最终的。
执行流程:
1、先尝试着执行try语句块中的代码,如果没有产生异常,忽略catch语句。继续向下执行。
2、如果产生异常了,那么就会跳出try语句,而去匹配catch语句,和哪个catch匹配上了,就进入到catch语句中去执行。
3、一个try语句可以配合多个catch,产生异常时,会从上向下匹配这些异常类型。和哪个匹配上了就执行哪个catch。小类型的异常写前面,大类型的异常写后面。
4、如果有finally语句,无论是否产生异常,都会执行finally里面的代码。该语句块是可选的。一般用于资源的释放,文件的断开,临时文件的删除。。
2.4、抛出异常
throws关键字,该方法不处理异常,抛出,交给调用处进行处理异常。
publicvoidtest()throws异常类型1,异常类型2...{
}
表示该方法不处理异常,向外抛出,交由调用处进行处理。受检异常,调用处就必须处理,非受检异常调用处可以暂时不处理。









网友评论