<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## [捕獲所有異常](https://lingcoder.gitee.io/onjava8/#/book/15-Exceptions?id=%e6%8d%95%e8%8e%b7%e6%89%80%e6%9c%89%e5%bc%82%e5%b8%b8) 可以只寫一個異常處理程序來捕獲所有類型的異常。通過捕獲異常類型的基類 Exception,就可以做到這一點(事實上還有其他的基類,但 Exception 是所有編程行為相關的基類): ~~~ catch(Exception e) { System.out.println("Caught an exception"); } ~~~ 這將捕獲所有異常,所以最好把它放在處理程序列表的末尾,以防它搶在其他處理程序之前先把異常捕獲了。 因為 Exception 是與編程有關的所有異常類的基類,所以它不會含有太多具體的信息,不過可以調用它從其基類 Throwable 繼承的方法: ~~~ String getMessage() String getLocalizedMessage() ~~~ 用來獲取詳細信息,或用本地語言表示的詳細信息。 ~~~ String toString() ~~~ 返回對 Throwable 的簡單描述,要是有詳細信息的話,也會把它包含在內。 ~~~ void printStackTrace() void printStackTrace(PrintStream) void printStackTrace(java.io.PrintWriter) ~~~ 打印 Throwable 和 Throwable 的調用棧軌跡。調用棧顯示了“把你帶到異常拋出地點”的方法調用序列。其中第一個版本輸出到標準錯誤,后兩個版本允許選擇要輸出的流(在[附錄 I/O 流](https://lingcoder.gitee.io/onjava8/#/)中,你將會理解為什么有兩種不同的流)。 ~~~ Throwable fillInStackTrace() ~~~ 用于在 Throwable 對象的內部記錄棧幀的當前狀態。這在程序重新拋出錯誤或異常(很快就會講到)時很有用。 此外,也可以使用 Throwable 從其基類 Object(也是所有類的基類)繼承的方法。對于異常來說,getClass() 也許是個很好用的方法,它將返回一個表示此對象類型的對象。然后可以使用 getName() 方法查詢這個 Class 對象包含包信息的名稱,或者使用只產生類名稱的 getSimpleName() 方法。 下面的例子演示了如何使用 Exception 類型的方法: ~~~ // exceptions/ExceptionMethods.java // Demonstrating the Exception Methods public class ExceptionMethods { public static void main(String[] args) { try { throw new Exception("My Exception"); } catch(Exception e) { System.out.println("Caught Exception"); System.out.println( "getMessage():" + e.getMessage()); System.out.println("getLocalizedMessage():" + e.getLocalizedMessage()); System.out.println("toString():" + e); System.out.println("printStackTrace():"); e.printStackTrace(System.out); } } } ~~~ 輸出為: ~~~ Caught Exception getMessage():My Exception getLocalizedMessage():My Exception toString():java.lang.Exception: My Exception printStackTrace(): java.lang.Exception: My Exception at ExceptionMethods.main(ExceptionMethods.java:7) ~~~ 可以發現每個方法都比前一個提供了更多的信息一一實際上它們每一個都是前一個的超集。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看