JavaSE

    xiaoxiao2021-03-25  73

    一、异常的概念 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: 5 at 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除、数组下标越界等,其产生比较频繁, 处理麻烦,如果显式的声明或捕获将会对程序可读性和运行效率产生很大影响。 因此由系统自动检测并将它们交给缺省的异常处理程序(用户可不处理) Exception ClassNotFoundException IOException InterruptedException RuntimeException ArithmeticException IndexOutOfBoundsException ArrayIndexOutOfBoundsException StringIndexOutOfBoundsException

    转载请注明原文地址: https://ju.6miu.com/read-36246.html

    最新回复(0)