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

异常处理的格式

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

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值