Joyen.fu
日中则昃,月盈则食。

异常

异常处理的最大父类是Throwable,但开发中不使用,其下有两个子类:

Error:表示JVM错误,与程序无关

Exception:一般指程序中的错误,开发中想要进行异常处理,基本使用此类。

throws 关键字

使用此关键字后,方法中不处理任何异常,而交给调用处去处理。

如果throws在主方法上,则所有的异常都交给JVM去处理。

throw 关键字

程序中可以使用throw关键字人为的抛出一个异常。

在异常处理中,每次产生异常的时候都是产生了一个异常类的实例化对象

 1 package com.fwj.exceptiondemo;
 2 
 3 public class Math {
 4 
 5     public int div(int i,int j) throws Exception{
 6         int temp = 0;
 7         try {
 8             System.out.println("出发开始....");
 9             temp = i/j;
10         } catch (Exception e) {
11             throw e;
12         }finally{
13             System.out.println("虽然产生异常但我们希望完成这一步操作,又向上抛出异常...");
14         }
15         return temp;
16     }
17 }
 1 package com.fwj.exceptiondemo;
 2 
 3 public class Test {
 4 
 5     public static void main(String[] args) {
 6 
 7         Math math = new Math();
 8         try {
 9             int temp = math.div(5, 0);
10             System.out.println(temp);
11         } catch (Exception e) {
12             e.printStackTrace();
13         }
14     }
15 
16 }

RuntimeException

public static int parseInt(String s)throws NumberFormatException

Integer类中的parseInt(String s)方法虽然抛出了异常,但在程序中不进行异常处理。

NumberFormatException是runtimeException的子类

说明只要是runtimeException异常对象,虽然方法使用了throws,程序中也可以不进行处理。

自定义异常

1 package com.fwj.exceptiondemo;
2 
3 public class MyException extends Exception {
4 
5     public MyException(String msg){
6         super(msg);
7     }
8 }
 1 package com.fwj.exceptiondemo;
 2 
 3 public class TestMyException {
 4 
 5     public static void main(String[] args) {
 6 
 7         try {
 8             throw new MyException("自定义异常哦");
 9         } catch (Exception e) {
10             e.printStackTrace();
11         }
12     }
13 
14 }

assert关键字

jdk1.4新添加的

当程序执行到某条语句后,其结果肯定是固定的值。

程序运行的时候需要给JVM加入-ea参数

 1 package com.fwj.exceptiondemo;
 2 
 3 public class AssertDemo {
 4 
 5     public static void main(String[] args) {
 6 
 7         int i = 10;
 8         //assert i==80;//两种断言方式
 9         assert i==100:"值错了";    
10     }
11 }

 

posted on 2013-08-01 19:06  Joyen.fu  阅读(261)  评论(0编辑  收藏  举报