异常 |
您所在的位置:网站首页 › trycatch打印异常信息 › 异常 |
一、异常体系介绍 异常的最大一个类为java.lang.Throwable,其有两个子类,分别为Error和Exception。 Error:代表的系统级别错误(属于严重问题)系统一旦出现问题,sun公司会把这些错误封装成Error对象。Error是给Sun公司自己用的,不是给我们程序员用的。因此我们开发人员不用管它。 Exception:叫做异常,代表程序可能出现的问题。通常用Exception以及他的子类来封装程序出现的问题。
总结:
二、编译时异常和运行时异常 编译时异常:在编译阶段,必须要手动处理,否则代码报错。如日期解析异常。作用在于提醒程序员。 运行时异常:在编译阶段不需要处理,是在代码运行过程中出现的异常。如数组索引越界异常。一般是由于参数传递错误带来的问题。 Java—Javac命令—>字节码文件—Java命令—>运行结果 Java—Javac命令—>字节码文件:该过程中出现的异常为编译异常。 字节码文件—Java命令—>运行结果:该过程中出现的异常为运行时异常。
三、异常作用 作用一:用来查询bug的关键参考信息 作用二:可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况 看异常的位置:从下往上看
四、异常的处理方式 (1)JVM默认的处理方式 把异常的名称,异常原因及异常出现的位置等信息输出在控制台; 程序停止执行,下面的代码就不会执行了。 (2)自己处理(捕获异常) 格式: try{ 可能出现异常的代码; }catch(异常类名 变量名){ 异常的处理代码; } 目标:当代码出现异常时,可以让程序继续往下执行。 处理过程: e.g. 若出现的异常为数组索引越界异常,则程序就会创建一个ArrayIndexOutOfBoundsException对象; new ArrayIndexOutOfBoundsException(); 拿着这个对象到catch的小括号中比对,看括号中的变量是否可以接受这个对象 如果能被接收,就表示该异常被捕获,执行catch里面对应的代码 当catch里面所有的代码执行完毕,继续执行try...catch体系下面的其他代码 注意: 1、如果要捕获多个异常,这些异常中如果存在父子关系的话,那么父类一定要写在下面 在JDK7之后,我们可以在catch中同时捕获多个异常,中间用|进行隔开,表示如果出现了A异常或者B异常的话,采取同一种处理方案。 例如: catch(ArrayIndexOutOfBoundsException|ArithmeticException e) 2、如果try中遇到的问题没有被捕获,相当于try...catch白写了,最终还是会交给虚拟机进行处理。 3、如果try中遇到了问题,下面的代码就不会执行了,直接跳转到对应的catch当中,执行catch里面的语句体,但是如果没有对应catch与之匹配,那么还是会交给虚拟机进行处理。
Throwable的成员方法
其中:printStackTrace()用的最多,在底层是利用System.err.println进行输出,把异常的信息以红色字体输出在控制台。 这三个方法都仅仅是打印信息,不会停止程序运行。 tips:生成try...catch的快捷键: 先选中代码,然后ctrl+alt+t,然后选try/catch (3)抛出异常(即交给调用者处理)
四、自定义异常 步骤: (1)定义异常类 类名: 当前异常的名字+Exception (2)写继承关系 运行时异常:继承RuntimeException 编译时异常:继承Exception (核心:提醒程序员检查本地信息) (3)空参构造 (4)带参构造 意义:就是为了让控制台的报错信息更加的见名知意
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |