JavaSE_42th_异常

来源:互联网 发布:sql语句执行顺序limit 编辑:程序博客网 时间:2024/06/08 12:00
一、异常的概念
1)Java异常是Java提供的用于处理程序中错误的一些机制。
2)所谓错误是指在程序运行过程中发生的一些异常事件(如:除0,
数组下标越界,所要读取的文件不存在)。
3)设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的
发生而阻断或产生不可预见的结果。
4)Java程序的执行过程中如出现异常事件,则会生成一个异常类对象,该异常对象封装了异常事件的
信息并提交给Java运行时系统,这个过程称为抛出(throw)异常。
5)当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码,并把当前异常对象交给其处理,
这一过程称为捕获(catch)异常。
6)举例:
package com.hpe.exception;public class TestEx {public static void main(String[] args) {try {System.out.println(2/0);} catch (ArithmeticException e) {System.out.println("您好,除数不能为0");}try {int[] arr = {1, 2, 3};System.out.println(arr[5]);} catch (ArrayIndexOutOfBoundsException e) {System.out.println("您好,数组下标越界了");e.printStackTrace();}}}
运行结果:
您好,除数不能为0您好,数组下标越界了java.lang.ArrayIndexOutOfBoundsException: 5at com.hpe.exception.TestEx.main(TestEx.java:13)
总结:
1)try {}中写有可能会出现异常的语句,catch() {}中写的是当try语句中的代码发生异常后,要进行相应处理的代码。
2)如果不使用try-catch语句对可能发生异常的代码进行捕获,那么当发生异常时,程序就会终止,使用了try-catch语句
后,如果发生异常,只要在catch中不执行退出程序,程序依然可以继续运行。
3)异常对象通过调用printStackTrace方法,可以打印异常的详细信息。
4)
try {someMethod();//调用该方法时试图捕获异常} catch (SomeException e) {//异常处理代码}
5)方法可以抛出异常

/* 声明该方法可能抛出的异常 */public void someMethod() throws SomeException {if(someCondition()) {throw new SomeExcetion("错误原因");//构造并抛出异常对象}}

二、异常的分类
1、JDK中定义了很多异常类,这些类对应了各种各样可能出现的异常事件。
(可抛出的)Throwable-----|              |--Error(错误,Java虚拟机的错误,无法处理)              |              |--Exception--|(异常,可以处理的)                            |                            |--RuntimeException(运行时异常,可以不处理)                            |                            |--如IOException等,这些是JDK中往外抛的异常(该类异常必须处理)
1)Error:称为错误,由Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,程序对其不做处理。
2)Exception:所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要
用户显式的声明或捕获。
3)RuntimeException:一类特殊的异常,如被0除、数组下标越界等,其产生比较频繁,
处理麻烦,如果显式的声明或捕获将会对程序可读性和运行效率产生很大影响。
因此由系统自动检测并将它们交给缺省的异常处理程序(用户可不处理)
ExceptionClassNotFoundExceptionIOExceptionInterruptedExceptionRuntimeExceptionArithmeticExceptionIndexOutOfBoundsExceptionArrayIndexOutOfBoundsExceptionStringIndexOutOfBoundsException




0 0
原创粉丝点击