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);
          }

          打印結果如下:
          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)什么時候會出現?  回復  更多評論   


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


          網站導航:
           

          導航

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

          統計

          常用鏈接

          留言簿(12)

          隨筆檔案(28)

          相冊

          技術友情博客

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 安平县| 琼海市| 方城县| 安泽县| 比如县| 营口市| 美姑县| 共和县| 承德县| 偏关县| 瓦房店市| 济南市| 博兴县| 襄樊市| 崇义县| 永嘉县| 望江县| 呼和浩特市| 郑州市| 遂昌县| 油尖旺区| 息烽县| 东至县| 博客| 龙门县| 嘉定区| 阜平县| 苍溪县| 大埔区| 灵山县| 澳门| 大石桥市| 海宁市| 盐津县| 磴口县| 东山县| 福鼎市| 日照市| 黑水县| 汉源县| 邛崃市|