Java海闊天空

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

          打印異常的堆棧信息

          package com.aptech.print;
          import java.io.ByteArrayOutputStream;
          import java.io.PrintStream;
          public class Test {
          /**
               * 獲取Exception的堆棧新息。用于顯示出錯(cuò)來(lái)源時(shí)使用。
               * @param e
               *            Exception對(duì)象
               * @param length
               *            需要的信息長(zhǎng)度,如果 <=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("中華人民共和國(guó)");
            } catch (NumberFormatException e) {
             String s = Test.getErrorStack(e, 0);
             System.out.println("異常信息:" + s);
            }
            
          }
          }

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

          評(píng)論

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

          需要這么玩嗎  回復(fù)  更多評(píng)論   

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

          to:nicky
          很多時(shí)候都需要的。只是你沒(méi)碰到過(guò)吧。  回復(fù)  更多評(píng)論   

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

          有用,謝謝  回復(fù)  更多評(píng)論   

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

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

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

          打印結(jié)果如下:
          java.lang.NumberFormatException: For input string: "中華人民共和國(guó)"
          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: "中華人民共和國(guó)"
          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)


          請(qǐng)問(wèn)需要這么大動(dòng)干戈嗎?  回復(fù)  更多評(píng)論   

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

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


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

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

          統(tǒng)計(jì)

          常用鏈接

          留言簿(12)

          隨筆檔案(28)

          相冊(cè)

          技術(shù)友情博客

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 墨玉县| 龙口市| 拉孜县| 灯塔市| 山东| 白水县| 铁岭市| 英德市| 松阳县| 崇义县| 三门峡市| 云浮市| 湛江市| 兴文县| 仁怀市| 衡阳市| 韶山市| 睢宁县| 怀来县| 尉犁县| 乌恰县| 桐柏县| 长葛市| 克山县| 眉山市| 嘉祥县| 额敏县| 阳西县| 泽州县| 焦作市| 贺兰县| 肇庆市| 东城区| 饶平县| 岳池县| 泾川县| 肥西县| 阳新县| 桃源县| 昌江| 遵化市|