java 异常

异常:在 Java 语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)
Java 程序在执行过程中所发生的异常事件可分为两类:
    Error : Java 虚拟机无法解决的严重问题 。如:JVM 系统内部错误、资源耗尽等严重情况 。一般不编写针对性的代码进行处理 。
    Exception : 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理 。例如:
空指针访问
试图读取不存在的文件
网络连接中断

异常类结构图:
异常类结构图

异常处理机制:抓抛模型

Java 程序的执行过程中如出现异常,会生成一个异常类对象,该异常对象将被提交给 Java 运行时系统,这个过程称为抛出 ( throw ) 异常 。

异常对象的生成
    由虚拟机自动生成:程序运行过程中,虚拟机检测到程序发生了问题,如果在当前代码中没有找到相应的处理程序,就会在后台自动创建一个对应异常类的实例对象并抛出——自动抛出
    由开发人员手动创建:Exception exception = new ClassCastException();——创建好的异常对象不抛出对程序没有任何影响,和创建一个普通对象一样

捕获异常: try{ } catch( ){ } catch( ){ } finally{ }

捕获异常有关的信息 。
getMessage( ) 获取异常信息,返回字符串
printStackTrace( ) 获取异常类名和异常信息,以及异常出现在程序中的位置 。返回值 void 。

如果抛出的异常是 IOException 等类型的非运行时异常,则必须捕获,否则编译错误 。也就是说,我们必须处理编译时异常,将异常进行捕捉,转化为运行时异常 。

声明抛出异常是 Java 中处理异常的第二种方式
    如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显示地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理 。
    在方法声明中用 throws 语句可以声明抛出异常的列表,throws 后面的异常类型可以是方法中产生的异常类型,也可以是它的父类 。

手动抛出异常:
    首先要生成异常类对象,然后通过 throw 语句实现抛出操作(提交给 Java 运行环境) 。

IOException e = new IOException();
throw e;

可以抛出的异常必须是 Throwable 或其子类的实例 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值