异常处理-动手动脑

1.请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识。

import javax.swing.*;

class AboutException {
   public static void main(String[] a) 
   {
      int i=1, j=0, k;
      ///k=i/j;


	try
	{
		
		k = i/j;    // Causes division-by-zero exception
		//throw new Exception("Hello.Exception!");
	}
	
	catch ( ArithmeticException e)
	{
		System.out.println("被0除.  "+ e.getMessage());
	}
	
	catch (Exception e)
	{
		if (e instanceof ArithmeticException)
			System.out.println("被0除");
		else
		{  
			System.out.println(e.getMessage());
			
		}
	}

	
	finally
     {
     		JOptionPane.showConfirmDialog(null,"OK");
     }
		
  }
}

 

 

 

 

 

 

 Java中的异常捕获语句

Try{
			//可能发生运行错误的代码;
		}
		catch(异常类型     异常对象引用){
			//用于处理异常的代码
		}
		finally{
			//用于“善后” 的代码
		}

  Java 中所有可捕获的异常都派生自 Exception 类。

       finally最后都会执行一次。

使用Java异常处理机制

    1.     把可能会发生错误的代码放进try语句块中。
    2.     当程序检测到出现了一个错误时会抛出一个异常对象。异常处理代码会捕获并处理这个错误。
    3.     catch语句块中的代码用于处理错误。
    4.     当异常发生时,程序控制流程由try语句块跳转到catch语句块。
    5.     不管是否有异常发生,finally语句块中的语句始终保证被执行。
    6.     如果没有提供合适的异常处理代码,JVM将会结束掉整个应用程序。

2.多层的异常捕获

public class CatchWho2 { 
    public static void main(String[] args) { 
        try {
            	try { 
                	throw new ArrayIndexOutOfBoundsException(); 
            	} 
            	catch(ArithmeticException e) { 
                	System.out.println( "ArrayIndexOutOfBoundsException" + "/内层try-catch"); 
            	}
            throw new ArithmeticException(); 
        } 
        catch(ArithmeticException e) { 
            System.out.println("发生ArithmeticException"); 
        } 
        catch(ArrayIndexOutOfBoundsException e) { 
            System.out.println( "ArrayIndexOutOfBoundsException" + "/外层try-catch"); 
        } 
    } 
}

  

 

 当有多个嵌套的try…catch…finally时,要特别注意finally的执行时机。

 

posted @ 2019-10-29 21:51  小赵不吃溜溜梅  阅读(104)  评论(0编辑  收藏  举报