<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-144  評論-80  文章-1  trackbacks-0

    用異常來處理錯誤。
    捕獲異常最佳的時候應(yīng)該是程序編譯的時候,也就是程序運行之前,但是不是所有的錯誤都能在編譯的時候被發(fā)現(xiàn),
    有些問題只有到程序運行的時候才能被處理,他們要通過某種方式,讓引發(fā)問題的代碼將適當?shù)男畔鹘o那些知道
    該怎么處理這些問題的程序。

     基本異常
     
      異常條件是一種能阻止正在運行的方法或其某一部分繼續(xù)運行下去的問題。
      把異常條件同普通問題區(qū)分開來,這點很重要,遇到普通問題的時候,你在
      當前的運行環(huán)境下有足夠的信息來處理這個困難,對于異常條件,由于你得不到
      足夠得用以處理這個問題得信息,因此不能在當前得運行環(huán)境下繼續(xù)運行下去,
      你只能跳出當前得運行環(huán)境,并且把問題交到上層得運行環(huán)境,這就是拋出異常的
      時候所發(fā)生的事情。

      當你拋出異常對象的時候,首先會象創(chuàng)建其他java對象那樣,創(chuàng)建一個異常對象,
      在堆里,用new ,然后停下當前的執(zhí)行路徑,再將異常對象的reference從當前的運行
      環(huán)境中彈出去,現(xiàn)在異常處理機制開始接管程序了,

     創(chuàng)建自己的異常
                
           

    package com.faintbear;

    class SimpleException  extends Exception {}

    public class SimpleExceptionDemo 
    {
        
    public void f() throws SimpleException 
        
    {
            System.
    out.println(" Throwing SimpleException from f()");
            
    throw new SimpleException ();
            
        }

        
        
    public static void main(String[]args)
        
    {
             SimpleExceptionDemo sed 
    = new SimpleExceptionDemo();
             
    try{
                 sed.f();
                 
             }
    catch (SimpleException e){
                System.err.println(
    "caught it");
                e.printStackTrace();
             }

        }

        
        

    }

     

      異常說明

      異常說明屬于方法聲明的一部分,要列在參數(shù)表的后面。
      異常說明要用throws關(guān)鍵詞語,后面跟上所有可能拋出異常類型的清單。


      捕捉任意類型的異常

      要想創(chuàng)建一個“能處理任意類型異常的”異常處理程序是完全可能的,要做到這點,
      你就必須去捕捉異常的基類Exception,

      由于Exception只是那些跟程序員有關(guān)的異常類的基類,因此你不能從它那里得到更多的
      關(guān)于異常的具體信息,不過你也可以調(diào)用Exception的基類Throwable的方法,

      String getMessage()

      String getLocalizedMessage()

      String toString()

      void printStackTrace()
      void printStackTrace(PrintStream)
      void printStackTrace(java.io.PrintWriter)

      Throwable fillInStackTrace()


      用finally進行清理

       你會時常碰到”無論try區(qū)塊有沒有拋出異常“,程序都必須執(zhí)行的代碼。一般來說
       這些代碼都是執(zhí)行恢復內(nèi)存之外的操作的(因為恢復內(nèi)存是垃圾回收器的活)
       當你需要把內(nèi)存以外的東西恢復到原先狀態(tài)的時候finally就顯得必要了。
       

    posted on 2005-03-23 17:14 小力力力 閱讀(445) 評論(0)  編輯  收藏 所屬分類: JAVA 、筆記
    主站蜘蛛池模板: 国国内清清草原免费视频99 | 国产做国产爱免费视频| 亚洲AV无码精品色午夜在线观看| 日本高清在线免费| 欧亚一级毛片免费看| 亚洲三级电影网站| 国产免费人成在线视频| 免费人妻无码不卡中文字幕系| 亚洲JIZZJIZZ妇女| 亚洲精品自拍视频| 精品亚洲视频在线观看| 成人免费毛片内射美女APP | 免费大香伊蕉在人线国产| 午夜视频在线免费观看| 国产成人精品亚洲| 亚洲不卡视频在线观看| 亚洲AV无码一区二区三区DV| 国产成人免费a在线视频app| 日日麻批免费40分钟无码 | 全免费a级毛片免费看不卡| a视频在线免费观看| 亚洲风情亚Aⅴ在线发布| 亚洲欧洲日产国产综合网| 亚洲国产精品人人做人人爱| 成人免费午夜无码视频| 国产成人AV免费观看| 香港一级毛片免费看| 亚洲人成网站在线播放2019| 亚洲高清在线mv| 亚洲国产精品无码久久一线| 亚洲福利精品一区二区三区| 成全视频在线观看免费高清动漫视频下载| 七色永久性tv网站免费看| 中文字幕在线免费观看视频| 久久久久亚洲AV无码去区首| 亚洲一区二区三区播放在线| 亚洲色图国产精品| 亚洲A∨无码无在线观看| 国内精品99亚洲免费高清| vvvv99日韩精品亚洲| 国产高清在线精品免费软件|