Java海闊天空

          編程是我的生活,但生活不僅僅是編程。

          打印異常的堆棧信息

          package com.aptech.print;
          import java.io.ByteArrayOutputStream;
          import java.io.PrintStream;
          public class Test {
          /**
               * 獲取Exception的堆棧新息。用于顯示出錯來源時使用。
               * @param e
               *            Exception對象
               * @param length
               *            需要的信息長度,如果 <=0,表示全部信息
               * @return String 返回該Exception的堆棧新息
               * @author 李贊紅
               */
          public static String getErrorStack(Exception e, int length) {
            String error = null;
            if (e != null) {
             try {
              ByteArrayOutputStream baos = new ByteArrayOutputStream();
              PrintStream ps = new PrintStream(baos);
              e.printStackTrace(ps);
              error = baos.toString();
              if (length > 0) {
               if (length > error.length()) {
                length = error.length();
               }
               error = error.substring(0, length);
              }
              baos.close();
              ps.close();
             } catch (Exception e1) {
              error = e.toString();
             }
            }
            /*
             * try{ String str=new String(error.getBytes("ISO-8859-1"),"GBK");
             * return str; }catch(Exception e1) { e1.printStackTrace(); }
             */
            return error;
          }

          public static void main(String[] args) {
            try {
             Integer.parseInt("中華人民共和國");
            } catch (NumberFormatException e) {
             String s = Test.getErrorStack(e, 0);
             System.out.println("異常信息:" + s);
            }
            
          }
          }

          posted on 2008-07-04 09:38 李贊紅 閱讀(4439) 評論(5)  編輯  收藏

          評論

          # re: 打印異常的堆棧信息 2008-07-05 21:35 nicky

          需要這么玩嗎  回復  更多評論   

          # re: 打印異常的堆棧信息 2008-07-07 08:33 李贊紅

          to:nicky
          很多時候都需要的。只是你沒碰到過吧。  回復  更多評論   

          # re: 打印異常的堆棧信息 2008-10-23 11:19 baozhang

          有用,謝謝  回復  更多評論   

          # re: 打印異常的堆棧信息 2009-06-14 15:04 Robin's Java World

          try {
          Integer.parseInt("中華人民共和國");
          } catch (NumberFormatException e) {
          e.printStackTrace();

          String s = Test.getErrorStack(e, 0);
          System.out.println("異常信息:" + s);
          }

          打印結(jié)果如下:
          java.lang.NumberFormatException: For input string: "中華人民共和國"
          at java.lang.NumberFormatException.forInputString(Unknown Source)
          at java.lang.Integer.parseInt(Unknown Source)
          at java.lang.Integer.parseInt(Unknown Source)
          at ttt.main(ttt.java:42)
          異常信息:java.lang.NumberFormatException: For input string: "中華人民共和國"
          at java.lang.NumberFormatException.forInputString(Unknown Source)
          at java.lang.Integer.parseInt(Unknown Source)
          at java.lang.Integer.parseInt(Unknown Source)
          at ttt.main(ttt.java:42)


          請問需要這么大動干戈嗎?  回復  更多評論   

          # re: 打印異常的堆棧信息 2011-02-25 23:13 landonlv

          你好,我想了解一下:打印堆棧異常信息的時候,(Unknown Source)什么時候會出現(xiàn)?  回復  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           

          導航

          <2008年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統(tǒng)計

          常用鏈接

          留言簿(12)

          隨筆檔案(28)

          相冊

          技術(shù)友情博客

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 酒泉市| 隆尧县| 临邑县| 丹阳市| 尼木县| 房产| 玛沁县| 理塘县| 钟山县| 松江区| 鹤岗市| 隆子县| 福安市| 延川县| 上饶县| 望谟县| 高淳县| 遂宁市| 金平| 崇文区| 平潭县| 宁乡县| 台北县| 阜新市| 盖州市| 寻乌县| 河源市| 浦县| 平乡县| 搜索| 平罗县| 托里县| 彭阳县| 合山市| 新邵县| 永嘉县| 江达县| 宜昌市| 上虞市| 六枝特区| 太和县|