首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

关于错误一,熟悉的陌生人:printStackTrace

2014-06-19 
关于异常一,熟悉的陌生人:printStackTrace熟悉的陌生人:printStackTrace当程序运行的时候,如果出现运行期

关于异常一,熟悉的陌生人:printStackTrace
熟悉的陌生人:printStackTrace

    当程序运行的时候,如果出现运行期异常,console会打印一堆的错误信息和一堆的类名、方法名,我们根据这些错误信息知道哪个类,哪个方法,甚至哪一行代码出了错误,这些熟悉的错误信息是哪里来的呢:
    就是我们熟悉的陌生人printStackTrace()方法。
    这个方法继承自Throwable类(所有异常类的老祖宗),可以通过getStackTrace()方法来直接访问,会返回一个由栈轨迹中的元素所构成的数组(java对象是存储在堆中,但是其引用是存储在栈中,所有的引用会作为轨迹存在该数组中),其中每个元素都表示栈中的一帧。元素0是栈顶元素,是调用序列中最后一个方法调用,即这个Throwable被创建和抛出之处。数组中的组后一个元素和栈底是调用序列中最后一个方法调用。
   实例代码:

   public class WhoCalled{       static void f(){         try{            throw new Exception();         }catch(Exception e){            for(StackTraceElement ste : e.getStackTrace()){                System.out.println(ste.getMethodName());             }         }         static void g(){f();}         static void h(){g();}         pulic static void main(String[]  args){              f();              System.out.println("-------------");              g();              System.out.println("-------------");              h();       }     }

console输出:
      f
      main
      ---------------------
      f
      g
      main
      ---------------------
      f
      g
      h
      main
2 楼 xinyangwjb 2012-02-21   好的,呵呵

热点排行