• Java关于e.printStackTrace()介绍


    public void printStackTrace()将此 throwable 及其追踪输出至标准错误流。此方法将此 Throwable 对象的堆栈跟踪输出至错误输出流,作为字段 System.err 的值。输出的第一行包含此对象的 toString() 方法的结果。剩余行表示以前由方法 fillInStackTrace() 记录的数据。此信息的格式取决于实现,但以下示例是最常见的:
    java.lang.NullPointerException
             at MyClass.mash(MyClass.java:9)
             at MyClass.crunch(MyClass.java:6)
             at MyClass.main(MyClass.java:3)
    本示例通过运行以下程序生成:
    class MyClass {
         public static void main(String[] args) {
             crunch(null);
         }
         static void crunch(int[] a) {
             mash(a);
         }
         static void mash(int[] b) {
             System.out.println(b[0]);
         }
    }

    还有就是
    catch(Exception e){
    e.printStackTrace() ;

    当try语句中出现异常是时,会执行catch中的语句,java运行时系统会自动将catch括号中的Exception e 初始化,也就是实例化Exception类型的对象。e是此对象引用名称。然后e(引用)会自动调用Exception类中指定的方法,也就出现了e.printStackTrace() ;。
    printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。(这是白话解释,比较容易理解)

    关于System.out.println(e)与e.printStackTrace()

    在抛出异常的情况下,有很多方法,System.out.println(e);这个方法打印出异常,并且输出在哪里出现的异常;e.printStackTrace()也是打印出异常,但是它还将显示出更深的调用信息。比如说:

    A extends ---> B extends---> C

    当在创建A的过程中出现问题了,我们抛出异常。<

    System.out.println(e),除了标准异常外,只打印at A 然后再向外层层输出。

    e.printStackTrace(),除了标准异常外,打印

     at C

     at B

     at A

     .......再向外层调查。

    在向外层调查的情况下,都一样。最后都会回到com.sun.midp.main.Main.main

     
    System.out.println();当发生异常时显示你自己设定的字符串信息;就比如下面的代码,try里面进行IO操作,你知道要抛出异常肯定也是IO异常,catch里面就写上特定的IOException,自己打印就行了

    try{
    //function
    }
    catch(IOException exc){
        System.out.println("IOException");
    }
    e.printStackTrace();是打印异常的堆栈信息,指明错误原因,其实当发生异常时,通常要处理异常,这是编程的好习惯,所以e.printStackTrace()可以方便你调试程序!

  • 相关阅读:
    23种设计模式(转载)
    RabbitMQ JAVA客户端调用
    JavaScript中的this
    RedisDesktopManager 踩坑之旅
    webmagic使用手册
    Maven 手动添加本地jar包
    根据端口号查询 进程 并杀掉进程
    从经典面试题看java中类的加载机制
    Java线程的5种状态及切换(透彻讲解)
    JVM 类加载机制详解
  • 原文地址:https://www.cnblogs.com/wangtianze/p/6691619.html
Copyright © 2020-2023  润新知