首先还是借用一张图来说明一下:
Java中运行时产生的逻辑错误分为两类:可捕获的异常和不可捕获的错误。
Error(错误):是程序无法处理的,表示运行应用程序中较严重问题。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,如Java虚拟机运行错误(Virtual MachineError)、类定义错误(NoClassDefFoundError)等。
Exception(异常):是程序本身可以处理的异常。
运行时异常:都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。
非运行时异常 (编译异常):从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。
在 Java 应用程序中,异常处理机制为:抛出异常,捕捉异常。
抛出异常:当一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状态等异常信息。运行时系统负责寻找处置异常的代码并执行。
捕获异常:对于所有的可查异常,Java规定:一个方法必须捕捉,或者声明抛出方法之外。也就是说,当一个方法选择不捕捉可查异常时,它必须声明将抛出异常。
try-catch语句
在Java中,异常通过try-catch语句捕获。其一般语法形式为
try {
// 可能会发生异常的程序代码
} catch (Type1 id1){
// 捕获并处置try抛出的异常类型Type1
}
catch (Type2 id2){
//捕获并处置try抛出的异常类型Type2
}
关键词try后的一对大括号将一块可能发生异常的代码包起来,称为监控区域。Java方法在运行过程中出现异常,则创建异常对象。将异常抛出监控区域之 外,由Java运行时系统试图寻找匹配的catch子句以捕获异常。若有匹配的catch子句,则运行其异常处理代码,try-catch语句结束。
匹配的原则是:如果抛出的异常对象属于catch子句的异常类,或者属于该异常类的子类,则认为生成的异常对象与catch块捕获的异常类型相匹配。
相关推荐
NULL 博文链接:https://hunnuxiaobo.iteye.com/blog/424256
资源讲了一个使用java socket编写FTP client 的实例,可以学习java socket编程的基本步骤和原理
NULL 博文链接:https://hunnuxiaobo.iteye.com/blog/436797
做为java分布式计算的基础框架的RMI体系,是javaEE结构的基础技术. 本课件全面讲解了RMI的一般实现,特殊问题解决及与sping的组合应用. 1.分布式计算的起因及基本原理 2.RMI体系结构 3.RMI服务器实现及编码 4.RMI...
蓝杰实训 手机定位 系统技术原理 .
蓝杰IBM-robocode平台资料,java语言
CMPP模拟网关,用于CMPP2.0;CMPP3.0开发调试,同时提供相关java代码,供大家参数,若开发有困难的,大家可以借用华为的短信代理包 smproxy.jar
基于桌面交互方式的web2.o应用,J2EE体系,MYSQL数据库,附带所有源码和数据库,附带说明:蓝杰网的源码
BlueBlood-OS这是一个类UNIX的64bit操作系统,从0开始完整的实现一个OS本篇README.md面向开发者上手指南以下指南将帮助您在本地机器上安装和运行该项目,...作者邵靳天@蓝杰您也可以在贡献者列表中提到所有参与该项目的