Java异常堆栈信息的具体执行过程

  • 举例:写一个空指针异常
    1:声明一个引用类型,并且赋值为null
    2:使用这个null变量调用方法或者属性,都会产生空指针异常

  • 注意:异常信息,是JVM给程序跑出来的,我们程序员加try…catch…,是为了是代码能正常的执行下去

  • 注意:如果你知道你的代码有可能报什么异常,那么就在catch中写一个具体的异常类型

  • 注意:如果你自己写的异常没有和代码抛出的异常匹配,那么他就不会进到catch中,导致的结果及时,后面的代码也不能执行了

  • 注意:如果你不知道的你的代码会报什么异常,那么干脆直接写Exception异常,记着在catch中吧打印异常信息的代码加上,便于程序员寻找错误原因

  • 注意:如果有多个方法调用,其中一个方法出错了,异常会报好几个地方,我们找异常的时候,从控制台的由上而下来找

  • 注意:方法连续调用,在堆栈异常数组中,你有几个方法,就有几条跟踪信息,一般数组中的第一个是它具体异常信息

  • 异常堆栈信息
    e.printStackTrace()
    java.lang.NullPointerException
    at com.sxt.day1217.exception1.Demo2.main(Demo2.java:18)
    StackTraceElement[] 异常堆栈元素数组

String eName = e.getClass().getName(); //代表异常类名
String cName = el.getClassName(); //异常发生的java类的名字
String fName = el.getFileName(); //异常发生的java文件的名字
String mName = el.getMethodName(); //异常发生的方法名
int lineNum = el.getLineNumber();//异常发生的行数
String msg = e.getMessage();//异常原因

public class Demo2 {
    public static void c(){

 a();
    }



 public static void a(){
    	//int[] arr =null;
    	
     try {
    	
		System.out.println(10/0);
		//NullPointerException
	} catch (Exception e) {
		StackTraceElement[] ste = e.getStackTrace();//
		System.out.println(ste.length);
		StackTraceElement el = ste[0];
		String eName = e.getClass().getName(); //代表异常类名
		String cName = el.getClassName(); //异常发生的java类的名字
		String fName = el.getFileName();  //异常发生的java文件的名字
		String mName = el.getMethodName(); //异常发生的方法名
		int lineNum = el.getLineNumber();//异常发生的行数
		String msg = e.getMessage();//异常原因
		
		System.err.println(eName+" :"+msg+"\n\tat "+cName+"."
						+mName+"("+fName+lineNum+")");
		
		//System.out.println(ste.length);
		//String mes = e.getMessage();//异常原因
		//System.err.println(mes);
		e.printStackTrace();
	}
	
	System.out.println("我可以执行吗?");
}

public static void main(String[] args) {
  c();	
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值