您的位置:首页 > 编程语言 > Java开发

JAVA学习笔记整理四(异常处理)

2016-05-30 20:52 666 查看

异常处理的格式

异常:异常是导致程序中断运行的一种指令流,当异常发生时,如果没有进行良好的处理,则程序将会中断执行。

try{

} catch (异常类 异常对象) {

}finally{

}

不管是否出现异常,都会执行finally语句中的代码,但是finally语句可省略(此语句块的编写中尽量不出现throw与return这样的语句,以避免不必要的问题出现)。

异常的分类

异常是一个对象,它继承自Throwable类,所有的Throwable类的子孙类所产生的对象都是异常(不能直接抛出Throwable类,最大只能抛出Exception类):

Exception:一般表示的是程序中出现的问题,可以直接使用try…catch进行处理

Error:由Java虚拟机生成并抛出,是不指望程序能从其恢复过来的灾难性故障。所以程序员不需要捕捉各处理它们

抛出异常

一个方法不处理它产生的异常,而是沿着调用层次向上传递,由调用它的方法来处理这些异常,叫抛出异常

方法:在产生异常的方法名后面加上要抛出(throws)的异常的列表

  (public int div(int I,int j) throwsException{})

实例应用

public class ExceptionDemo {
public static void main(String[] args) {
Math math = new Math();
try {
System.out.println("除法操作" + math.div(10, 0));
} catch (Exception e) {//进行异常的捕获
System.out.println("异常产生:" + e);//处理异常
}
}
}

class Math {
public int div(int i, int j) throws Exception{//方法可以不处理异常
System.out.println("======计算开始=====");
int temp = 0;
try {
temp = i / j;
} catch (Exception e) {//捕获异常
throw e;//不处理,把异常交给被调用处
} finally {//不管如何都执行
System.out.println("======计算结束=====");
}
return temp;
}
}

//======计算开始=====
//======计算结束=====
//异常产生:java.lang.ArithmeticException: / by zero


执行过程如下:



Exception类与RuntimeException类

Exception:在程序中必须使用try…catch进行处理

RuntimeException:可以不使用try…catch进行处理,如果有异常产生,将由JVM进行处理

断言

assert  boolean 表达式 (:详细的信息);

如果表达式的结果为true,则什么错误信息都不会提示;如果为false,则会提示错误信息,如果没有声明详细的信息描述,则系统会使用默认的错误信息提示方式

public class AssertDemo {
public static void main(String[] args) {
int x[] = { 1, 2, 3 };
assert x.length == 0 : "数组长度不为0";
}
}


要想使断言起作用,在JAVA运行时,应加入“-enableassertions”参数,也可简写为“-ea”

编译程序:javac AssertDemo.java

验证程序:java –ea AssertDemo

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: