2012年9月24日 星期一

[Java]產生的例外

Java  產生的例外都是一個物件(屬於Throwable類別或其子類別的副本)
Throwable 類別擁有兩個直接的子類別
1. Error  類別 : 屬於JVM 的嚴重錯誤,這種錯誤會導致程式終止執行,所以並無法使用例外處理處理這種錯誤.

2. Exception 類別:
 
  Excepton class 擁有一個子類別RuntimeException,這個類別的子類別是一些常見的例外.
 如
  ArithmeticException                          數學運算時產生的例外                        
  ArrayIndexOutOfBoundsException  陣列索引值小於0或超過陣列邊界
  ArrayStoreException                         陣列元數的型態不符
  IllegalArgumentException                 方法呼叫時參數型態不符
  NullPointerException                         物件值為null產生的例外


try{



}
catch(ExceptionType e)
{

}
finally{



}


//example 
public class DealMultiException
{
  
    public static void main(String args[])
    {
        try{
            int i;
            String args1 = args[0];  //產生超過陣列的例外
            for(i=2;i>-1;i--)
               System.out.println("計算結果:"+6/i); //Divide by zero exception
       

        }
        catch(ArithmeticException e)
        {
           //show exception info
           System.out.println("例外說明: "+e.getMessage());
           System.out.print("例外原因");
           e.printStackTrace();
        }
        catch(ArrayIndexOutOfBoundsException  e)
        {
           System.out.println("例外說明: "+e.getMessage());
           System.out.print("例外原因");
           e.printStackTrace();
        }
        finally
        {
            System.out.println("錯誤處理結束");
        }
        System.out.println("Programe end.");
   
   
    }



}


//丟出例外
public class MythrowException
{
   public static void main(String args[])
   {
           try
           {
             //取得參數字串
             int value = Integer.parseInt(args[0]);
           
             if(value==0)
               //丟出ArithmeticException 例外
               throw new ArithmeticException("值為0");

              
           }
           catch(ArithmeticException e)
           {
               //處理ArithmeticException例外
               System.out.println("例外說明:"+e.getMessage());
               System.out.print("例外原因 : ");
               e.printStackTrace();
           }
           finally
           {
              System.out.println("錯誤處理結束");
           }
   
   }



}

沒有留言:

張貼留言

讓ASP.NET網站在開發除錯時期擁有WEB.CONFIG文件轉換功能

ref: https://blog.kkbruce.net/2016/09/enabling-xml-document-transforms-for-all-asp-net-web-by-develop-time.html#.XoP1KGMzbRY