Java异常
来源:互联网 发布:盘点数据差异如何处罚 编辑:程序博客网 时间:2024/05/16 11:51
一、Java中的异常分类
通过运行程序,执行的结果是:Exception in thread "main" java.lang.ArithmeticException: / by zero
at oneWeek.Except.margin(Except.java:9)
at oneWeek.Except.main(Except.java:6)
其执行的结果是:Exception in thread "main" java.lang.NullPointerException
at oneWeek.NullPoint.main(NullPoint.java:8)
at oneWeek.Except.margin(Except.java:11)
at oneWeek.Except.main(Except.java:6)
程序正常结束
Exception in thread "main" java.lang.ArithmeticException
at oneWeek.ThrowException.main(ThrowException.java:10)
Java中所有异常的父类是Exception分为受理异常和非受理异常,受检异常是:SQLException、IQException、ClassNotFoundException、、、、;非受检异常是:RuntimeException以下的子类,也是Exception的子类,RuntimeException作为非受理异常它的子类有:NullPointException、ArithmeticException、EvenException、、、、、例如以下:
1.非受检异常(运行异常)
package oneWeek;public class Except {public static void main(String[] args) {Except exc = new Except();int v = exc.margin(20, 0);}public int margin(int a,int b){int result=a/b;return result;}}
通过运行程序,执行的结果是:Exception in thread "main" java.lang.ArithmeticException: / by zero
at oneWeek.Except.margin(Except.java:9)
at oneWeek.Except.main(Except.java:6)
因为它的被除数为零,所以出现算术异常即非处理异常
还有最常见的空指针异常例如:
package oneWeek;import javax.swing.JFrame;public class NullPoint {static JFrame jf;public static void main(String[] args) {jf.setVisible(true);}}
其执行的结果是:Exception in thread "main" java.lang.NullPointerException
at oneWeek.NullPoint.main(NullPoint.java:8)
是由于没有给定相关的地址,所以出现空指针异常
2.受检异常(非运行异常)
但凡继承了Exception不继承RuntimeException都是受检异常;
Java异常处理机制
1>捕获异常(将异常捕获)
1.try—catch语句
在Java中,非运行异常一般通过try-catch语句捕获,一般语法形式为:
try{//可能发生异常的代码程序}catch{//执行异常操作}catch{//执行异常操作}.......finally{处理完try与catch操作完后收尾操作,异常统一出口}
我们用简单的程序来试试,例如:
package oneWeek;public class Except {public static void main(String[] args) {Except exc = new Except();int v = exc.margin(20, 0);}public int margin(int a,int b){int result = 0;try{result=a/b;}catch(ArithmeticException e){e.printStackTrace();}finally{System.out.println("程序正常结束");}return result;}}其执行的结果是:java.lang.ArithmeticException: / by zero
at oneWeek.Except.margin(Except.java:11)
at oneWeek.Except.main(Except.java:6)
程序正常结束
由此可见,尽管程序出现异常,finally最终还得执行
同上,抛出异常我们任然可以用代码来解释:
package oneWeek;public class ThrowException {public static void main(String[] args) throws ArithmeticException{int i = 8;int j = 0;try{System.out.println("i/j的值是"+i/j);}catch(ArithmeticException e){throw new ArithmeticException();}finally{System.out.println("执行了finally语句");}}}输出结果是:执行了finally语句
Exception in thread "main" java.lang.ArithmeticException
at oneWeek.ThrowException.main(ThrowException.java:10)
先执行了finally语句,在执行了异常抛出。
0 0
- java 异常,java,异常
- Java 异常 异常链
- Java异常
- Java 异常
- JAVA 异常
- Java异常
- java 异常
- Java异常
- java异常
- Java异常
- java异常
- java异常
- java异常
- java 异常
- java异常
- java异常
- java异常
- Java异常
- FZU 2124 吃豆人 BFS
- 使用Fork/Join框架在任务中抛出异常
- Java中的IF语句问题
- PHP中fopen,file_get_contents,curl的区别
- 李开复:白手起家的10个步骤
- Java异常
- HDU 5528 Count a - b 欧拉函数 素数
- 求 2/1+3/2+5/3+8/5+13/8.....前20项之和
- [Java IO]01_File类和RandomAccessFile类
- POJ归类
- 关于CPU位数和操作系统位数
- js读取excel表格
- 【Python学习笔记】定义函数
- XML