1、 java提供了特有的语句进行处理。 
        try 
        { 
                 需要被检测的代码。 
        } 
        catch(异常类  变量) 
        { 
                 处理异常的代码;(处理方式) 
        } 
        finally 
        { 
                 一定会执行的语句; 
        } 
有三个结合格式: 
        a、try 
             { 
             } 
             catch () 
             { 
             } 
        b、try 
             { 
             } 
             finally 
             { 
             }  
        c、try 
             { 
             } 
             catch () 
             { 
             } 
             finally 
             { 
             }  
注意: 
        1)finally中定义的通常是关闭资源代码。因为资源必须释放。 
        2)如果在一个功能中,定义了一些必须要执行的代码,可以用try{}finally{}的方式,将一定执行的代码放在finally代码块中。 
        3)finally只有一种情况不会执行。当执行到System.exit(0);fianlly不会执行。 
 
2、throw和throws的用法 
        throw定义在函数内,用于抛出异常对象。 
        throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开。 
        当函数内容有throw抛出异常对象,并未进行try处理。必须要在函数上声明,否则编译失败。 
        注意:RuntimeException除外。也就说,函数内如果抛出的RuntimeExcpetion异常,函数上可以不用声明。 
 
3、调用者对抛出信息的处理 
        当在函数内部出现了throw抛出异常对象,那么就必须要给对应的处理动作。要么在内部try catch处理。要么在函数上声明让调用者处理。 
        一般情况下,函数内出现异常,函数上需要声明。在功能上通过throws的关键字声明了该功能有可能会出现异常类型。 
特殊之处: 
        Exception中有一个特殊的子类异常RuntimeException 运行时异常。 
                1) 如果在函数内抛出该异常,函数上可以不用声明,编译一样通过。 
                2)如果在函数上声明了该异常。调用者可以不用进行处理。编译一样通过。 
        之所以不用在函数上声明,是因为不需要让调用者处理。当该异常发生,希望程序停止。因为在运行时,出现了无法继续运算的情况,希望停止程序后,对代码进行修正。 
         如果函数声明了异常,调用者需要进行处理。处理方法可以throws可以try。 
对捕获到的异常对象进行常见方法操作: 
        String getMessage();//获取异常的信息。返回字符串。 
        toString();//获取异常类名和异常信息,返回字符串。 
        printStackTrace();//获取异常类名和异常信息,以及异常出现在程序中的位置.返回值void. 
                                //其实JVM默认的异常处理机制,就是在调用printStackTrace方法,打印异常的堆栈的跟踪信息。 
        printStackTrace(PrintStream s)//通常用该方法将异常内容保存在日志文件中,以便查阅。 |   
        
 
    
    
    
     
 
 |