java异常处理机制(3)(精)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java异常处理机制
一、什么是java的异常?
异常是导致程序中断运行的一种指令流,软件和硬件错误都可能导致异常的产生,用户输入错误,所需要的文件找不到,运行时磁盘空间不够,内存不够,算术运算错误(数的溢出、被零除),数组下标越界……
模仿一个异常:
package com.destiny;
public class Exception {
public static void main(String[] args {
System.out.println("********开始计算****************";
int i = 10;
int j = 0;
int m = i/j;//出现异常
//程序中断,以下部份没有执行
System.out.println("10除以0的结果是:"+m;
System.out.println("********完成计算****************";
}
}
结果:
********开始计算****************
Exception in thread "main" ng.ArithmeticException: / by zero
at com.destiny.Exception.main(Exception.java:8
二、异常处理方式
异常出现后,如果没有进行合理的处理,则会让应用程序中断运行。
Try{
放置可能会出现异常的语句
}catch(异常类异常类的对象{
处理异常的语句
}catch(异常类异常类的对象{
可以有多个,是因为try中的语句可能会抛出多个不同的异常,括号中的异常类有很多,不同的类就代表不同的异常,如果异常出现了,而catch所指定的异常类不属于产生的异常,那么该异常将不会被捕捉到。
}finally{
可选的语句块,不管是否出现了异常,该语句块的语句都要执行,比如关闭数据库的连接等
}
例子:
package com.destiny;
public class Exception00 {
public static void main(String[] args {
System.out.println("********开始计算****************";
int m=0;
try {
int i = 10;
int j = 0;
m = i/j;
} catch (ArithmeticException e {
System.out.println("异常被捕捉";
e.printStackTrace(;
}finally{
System.out.println("finally中的语句被执行";
}
}
}
结果:
********开始计算****************
ng.ArithmeticException: / by zero
异常被捕捉
at com.destiny.Exception00.main(Exception00.java:10
finally中的语句被执行
注意:
以上代码如果catch块声明成 catch (NumberFormatException e ,则异常将不会被捕捉,也不会被处理,但finally块中的代码也会被执行。
package com.destiny;
public class Exception00 {
public static void main(String[] args {
System.out.println("********开始计算****************";
int m=0;
try {
int i = 10;
int j = 0;
} catch (NumberFormatException e {
System.out.println("异常被捕捉";
e.printStackTrace(;
}finally{
System.out.println("finally中的语句被执行";
}
}
}
结果:
********开始计算****************
finally中的语句被执行
Exception in thread "main" ng.ArithmeticException: / by zero at com.destiny.Exception00.main(Exception00.java:10
三、异常处理机制
在整个的java异常处理中,实际上也是按照面向对象的方式进行处理的,一旦产生异常,则首先会产生一个异常类的实例化对象。
我们可以在try语句中对此异常进行捕捉。
产生的异常对象与catch中的各个异常类型进行匹配,如果匹配成功,则执行catch 块中的语句。
如果有finally语句,则最后执行finally中的语句。
例子:
public class Test {
public static void main(String[] args
{
int temp;
try {
int i=13;