Java 异常

 

package exception;

public class test3 {

	public static void main(String[] args) {
		new test3().t3();
	}

	void t1() {
		int i = 1 / 0;
	}

	void t2() {
		try {
			t1();
		} catch (Exception e) {
			throw new RuntimeException("异常信息2", e);
		}

	}

	void t3() {
		try {
			t2();
		} catch (Exception e) {
			throw new RuntimeException("异常信息3", e);
		}
	}

}

 

 

Exception in thread "main" java.lang.RuntimeException: 异常信息3

at exception.test3.t3(test3.java:26)

at exception.test3.main(test3.java:6)

Caused by: java.lang.RuntimeException: 异常信息2

at exception.test3.t2(test3.java:17)

at exception.test3.t3(test3.java:24)

... 1 more

Caused by: java.lang.ArithmeticException: / by zero

at exception.test3.t1(test3.java:10)

at exception.test3.t2(test3.java:15)

... 2 more

 

顺序是有表-内 最后的才是问题的根源

 

如果程序没有处理异常,当前线程会有个方法,来有JVM调用处理

java.lang.Thread.dispatchUncaughtException(Throwable) 这个方法是private

 

 

package exception;


public class test2 {

	public static void main(String[] args) {
		System.out.println("11111111111111111111111111111111111111111111111111111111");
		System.err.println("2222");
	}

}

 

 

多次执行程序有的时候222会先打印出来

说out err 这两个流的处理应该是异步的

 

 

 

整个项目的异常处理要统一规划,打印的错误信息要慎重考虑,为了系统上线后可以快速的锁定问题

不建议:又打印日志,有往外抛出异常,这样会有很多重复的异常堆,异常堆会很乱

 

原则:

具体明确

提早抛出

延迟捕获

 

目标:

什么出了错?

在哪出的错?

为什么出错?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值