关于异常

来源:互联网 发布:淘宝信誉在哪里看 编辑:程序博客网 时间:2024/05/20 18:50

一、概念:
异常是描述出错信息的对象。错误:无法程序中捕获,不能处理。异常:可捕获,可处理。
try{
//代码块
}catch(Exception e){}
在catch后面,定义一个异常变量,用来接收在try块中抛出的异常对象。然后通过e.printStackTrace()
将对象中的异常信息打印出来。

二、分类:
编译期异常:要求用户必须处理的异常,如果不处理,无法通过编译。
运行期异常:用户可以处理可以不处理,所有运行期异常都是RuntimeException 的子类。

三、异常的执行顺序:
先执行try块的内容,顺序执行,如果有异常发生,马上执行catch块的内容;
同时终止try块的其他代码,无论是否有异常,finally都会执行

代码示例:

package cn;import java.io.FileReader;import java.util.Properties;public class ExceptionTest {// throws 是方法修饰符,表示该方法有可能抛出某个异常,这时调用方就必须处理该异常。谁调用谁捕获。public static void test() throws Exception {Properties pro = new Properties();pro.load(new FileReader("  "));}public static void main(String[] args) {try {int x = 0;System.out.println("出现异常前的代码");int y = 10 / x;// throw new ArithmeticException(); //显示抛出异常对象,与上一句出现除零异常的代码效果一样} catch (java.lang.NullPointerException e) {e.printStackTrace();System.out.println("空指针异常");} catch (java.lang.ArithmeticException e) {// 一个try块中出现异常,就会找和最近异常类型匹配的catch块中。同时忽略其他的catch块。// 打印异常信息e.printStackTrace();System.out.println("除零错误");} catch (Exception e) {e.printStackTrace();System.out.println("其他异常");} finally {// 无论是否有异常都会执行的代码块,如果在try块或catch块中有return// 这时finally会在方法跳出前执行,finally一般用于资源清理工作,流的关闭,以及数据库的关闭// 只有在虚拟机关闭时(System.exit(0)),finally不会执行。System.out.println("finally内容");}System.out.println("异常外代码");}}


 

原创粉丝点击