黑马程序员技术交流社区
标题: 第三贴之异常具体代码(中) [打印本页]
作者: fjl_fight 时间: 2013-5-5 12:27
标题: 第三贴之异常具体代码(中)
12、异常的好处:
(1)将问题进行封装。
(2)将正常流程代码和问题处理代码相分离,方便于阅读。
注意:(1)catch是用于处理异常。如果没有catch就代表异常没有被处理过,如果该异常是检测时异常。那么必须声明(抛出)。
(2) ①finally中定义的通常是关闭资源代码。因为资源必须释放。
②finally只有一种情况不会执行。当执行到System.exit(0);fianlly不会执行。
如:
try{
… …
//正常执行到System.exit(0);
System.exit(0);
}catch(){
}finally{}
(3) 异常在子父类覆盖中的体现:
①子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类。
②如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集。
③如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常。
如果子类方法发生了异常。就必须要进行try处理。绝对不能抛。如果抛了就会出错
即:子类不能抛出比父类更多的异常
异常测试题:
5、 JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?
在try块中可以抛出异常吗?
答:1、throws是方法抛出异常。如果一个方法可能会出现异常,
但是没有能力来处理这种异常,可以在方法的声明处用throws子句来声明抛出异常,可以抛出多个异常类,用逗号隔开。可单独使用。
如:public void show() throws Exception{}
2、throw是语句抛出异常,是抛出异常对象,throw语句抛出的对象必须是java.lang.Throwable类或其子类的实例。
throw要么和try...(catch)...finally一起使用,要么和throws一起使用,不可单独使用。
如:
public static void print2() throws Exception{
int i=1;
int j=0;
try{
int a=i/j;
System.out.println(a);
throw new Exception();
}
finally{
System.out.println("finally......");
}
}
调用print()输出为:
finally......
Exception in thread "main" java.lang.ArithmeticException: / by zero
......
3、try:它里面放置可能引发异常的代码。
4、catch:后面对应异常类型和一个代码块,用于表明该catch块用于处理这种异常类型的代码块,可以有多个catch块。
5、finally:主要用于回收在try块里打开的物理资源(如数据库连接),
异常机制总是保证finally块总是被执行。
只有finally行完成之后,才会回来执行try或者catch块中的return或者throw语句,
如果finally中使用了return或者 throw等终止方法的语句,
则就不会跳回执行,直接停止。
如:
public String show(){
int i=1;
int j=1;
try{
//1、
int a=i/j;
System.out.println(a);
//3、
return "成功";
}catch(Exception e){
e.printStackTrace();
}finally{
//2、
System.out.println("finally......");
}
return "失败";
}
调用show(),最后输出结果为:1
finally......
成功
6. 在try块中是可以抛出异常的.如:
public static void print2() throws Exception{
int i=1;
int j=0;
try{
int a=i/j;
System.out.println(a);
throw new Exception();
}
finally{
System.out.println("finally......");
}
}
调用print()输出为:
finally......
Exception in thread "main" java.lang.ArithmeticException: / by zero
......
作者: hou604720966 时间: 2013-5-5 12:45
不错。。
作者: zero727 时间: 2013-5-5 14:54
你已经学到这后面了啊 哇咔咔 顶一个!!
作者: 曹睿翔 时间: 2013-5-5 19:31
你的博客肯定很优秀!整理的很有价值,继续努力!
作者: 风乐 时间: 2013-5-7 01:59
同样都学习了,为什么我就做不出这么好的总结整理呢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |