黑马程序员——javaSE_异常
2015-11-28 09:50
288 查看
-------
android培训、java培训、期待与您交流! ----------
2.异常的又来:问题也是现实生活中一个具体的事物,也可以通过java类的形式进行描述,并封装成了对象。
2.非严重的问题——通过了Exception类进行处理,运行时错误
Throwable
|__Error
|__Exception
|__RuntimeException
第一种方法用try{}catch(){}来捕捉处理
第二种方法可以自定义异常类,如果是被除数是0就可以抛出这个异常类
throw用于函数内,抛出异常对象
1.RuntimeException是Exception特殊的子类
2.如果在函数内抛出了该类异常,函数上可以不用生命,调用者也不用处理,一样编译通过
3.自定义异常时如果该异常发生无法再继续进行运算就可以让自定义异常继承RuntimeException
2.如果父类方法抛出多个异常,那么子类在覆盖方法时,只能抛出父类异常的子集。
try{}catch(){}
try{}finally{}
android培训、java培训、期待与您交流! ----------
(一)概述
1.异常:就是不正常。程序在运行时出现的不正常情况。其实就是程序中出现的问题。2.异常的又来:问题也是现实生活中一个具体的事物,也可以通过java类的形式进行描述,并封装成了对象。
(二)异常体系
1.严重的问题——一通过了Error类进行了描述,编译时错误2.非严重的问题——通过了Exception类进行处理,运行时错误
Throwable
|__Error
|__Exception
|__RuntimeException
(三)应用
1.异常的处理
举例出现除数为0的异常第一种方法用try{}catch(){}来捕捉处理
public class Test { public static void main(String[] args) { try{ demo(1,0); } catch(ArithmeticException a){ System.out.println("被除数不能为0!"); } } public static void demo(int x,int n){ System.out.println(x/n); } }
第二种方法可以自定义异常类,如果是被除数是0就可以抛出这个异常类
public class Test { public static void main(String[] args) { try{ demo(1,0); } catch(MyException a){ a.printStackTrace(); } } public static void demo(int x,int n)throws MyException{ if(n==0) throw new MyException("被除数为零了!"); //这里抛出了异常对象,函数上面就必须声明抛出,这样调用者才会处理 System.out.println(x/n); } } class MyException extends Exception{ //自定义异常继承Exception就具备了可拋性了 MyException(String str){ super(str); } }
3.throws和throw的区别
throws用于函数上,声明抛出异常类throw用于函数内,抛出异常对象
4.RuntimeException(运行时异常,编译不检测的异常)
1.RuntimeException是Exception特殊的子类2.如果在函数内抛出了该类异常,函数上可以不用生命,调用者也不用处理,一样编译通过
3.自定义异常时如果该异常发生无法再继续进行运算就可以让自定义异常继承RuntimeException
5.finally关键字
finally代码块是一定会执行的代码块,除非遇到System.exit()6.异常在字父类覆盖中的体现
1.子类在覆盖父类时,如果父类的方法抛出异常,那么子类覆盖方法只能抛出父类抛出的异常,或者异常的子类。2.如果父类方法抛出多个异常,那么子类在覆盖方法时,只能抛出父类异常的子集。
7.try catch finally组合的三种形式
try{}catch(){}finally{}try{}catch(){}
try{}finally{}
相关文章推荐
- 一个java程序员自学IOS开发之路(九)
- 大多数程序员最重要的应该学习什么?
- 程序员的楷模:全自动化的生活
- 程序员的楷模:全自动化的生活
- 黑马程序员——java入门基础知识
- 面试时必须准备的100 个关键问题!
- Java中String对象创建机制详解(面试必问)
- 阻止资深程序员技术进步的最大敌人就是开始做管理,做管理至少毁了中国90%的好程序员。
- 黑马程序员--面向对象(day06)
- 面向对象的三大特性?(java面试题)
- 黑马程序员--杨辉三角形问题
- 黑马程序员—Java基础—正则表达式
- Java 面试题目小结(未完待续)
- 斐波那契数列 兔子表述 面试题
- 程序员必备技能与习惯
- Scrum Master 面试题 – 你必须知道的22个Scrum基础知识
- Scrum Master 面试题 – 你必须知道的22个Scrum基础知识
- Scrum Master 面试题 – 你必须知道的22个Scrum基础知识
- 黑马程序员—Java基础—集合
- 程序员有趣的面试智力题(转)