JAVA异常解析
来源:互联网 发布:翻墙 for mac 编辑:程序博客网 时间:2024/06/18 11:29
一、概念:
java.lang包中有一个专门用来处理异常的类Throwable,它有两个子类Error 和Exception,它们分别用来处理两组异常,Error用来处理程序运行环境方面的异常,比如,虚拟机错误、装载错误和连接错误,这类异常主要是和硬件有关的,而不是由程序本身抛出的。
Exception是Throwable的一个主要子类,Exception下面还有子类,其中一部分子类分别应于Java程序运行时常常遇到的各种异常的处理,其中包括隐式异常。比如,程序中除数为0引起的错误、数组下标越界错误等,这类异常也称为运行时异常或非受检异常,因为它们虽然是由程序本身引起的异常,但不是程序主动抛出的,而是在程序运行中产的。
Exception子类的另一部分是子类是程序非运行时的异常处理,称为受检异常或显示异常,比如文件、类没有找到引起的异常等。
二、关键字try和catch:
JAVA程序异常处理格式为:
try{//可能出现异常的代码 }catch(异常类型 异常变量){//执行异常操作 }catch(异常类型 异常变量){//执行异常操作 }........ Finally{<span style="white-space:pre"></span>//处理完try和catch操作后的收尾操作,异常处理统一出口 }
三、处理机制:程序执行上述代码时一旦产生异常,则系统会自动产生一个异常实例化对象,此时如果存在try语句,则会自动找到匹配的catch语句执行,如果没有异常处理,则程序将会退出,系统报告异常在控制台,所有异常根据catch方法参数进行匹配异常的实例化对象,如果匹配成功,则由匹配成功的catch语句进行处理。
注意事项:
1.catch定义,由上到下,异常范围必须由小到大或者同级别的
try{int result = a/b; }catch(ArithmeticException e){ }<span style="font-family: 宋体;">catch(Exception e){</span><pre name="code" class="java"> }
2.运行时异常,catch中可以随意定义类型,程序运行时,会根据catch参数自动匹配。
3.非运行时异常,则catch中定义的异常,在try代码块中必须存在,如果没有类似异常存在,则不允许被定义。
四、Finally关键字在进行异常处理之后,在异常的处理格式中还有一个finally语句,name此语句将作为异常的统一出口,不管是否产生异常, 最终都要执行此段代码(即使方法被return掉,还是会执行)
五、throw和throws
Throws关键字主要在方法的声明上使用,表示方法中不处理异常,二交给调用处处理。实际上对于java程序来讲, 如果没有加入任何的异常处理,默认有jvm进行异常的处理操作;Throw关键字表示在程序中手动抛出一个异常,因此从异常处理机制上看,所有的异常一旦产生后,实际上抛出的就是一个异常的实例化对象, name此对象也可以有throw直接抛出;运行时异常,在程序中捕捉并throw后,方法中不一定要声明throws,而非运行时异常,在代码快中throw后,必须在方法中声明throws抛出异常。
public void test() throws Exception{int a = 10;int b = 0;try{int result = a/b;}catch(ArithmeticException e){throw e;}System.out.println("aaaaa");}
六、异常处理规则:
1.try语句不能单独存在,可以和catch、finally组成的try…catch、try…catch…finally、try…finally三种结构,catch语句可以有一个或者多个,但是try、catch、finally不能单独存在
2.try、catch、finally三个代码块中的语句变量独立存在,不能相互访问
3.多个catch语句,java虚拟机会自动匹配其中一个异常或者异常子类,就执行这个catch块中代码,并且不会再执行其他catch块中的代码.
- java 中的异常解析
- JAVA常见异常解析
- Java中的异常解析
- java 异常信息解析
- JAVA常见异常解析
- JAVA常见异常解析
- java异常解析
- JAVA异常解析
- Java异常类解析
- JAVA常见异常解析
- java异常解析以及自定义异常实例
- java深入浅出解析异常机制
- java.util.ConcurrentModificationException 异常解析
- 解析Java异常处理机制
- java异常分类和解析
- java深入浅出解析异常机制
- java异常抛出解析,java抛出方法
- JAVA中常见的异常解析
- Android之简单模仿微信聊天界面
- [Linux学习]安装LNMP/LAMP一键安装包
- NSDictionary Class Reference
- POJ - 1160 Post Office(四边形优化)
- js逻辑运算的特殊之处
- JAVA异常解析
- [PAT (Advanced Level) ]1035. Password 解题文档
- 百度_2015_校招_笔试题_题来了
- android第一课:android开发环境搭建
- SQL Server 2012 新功能
- 计数排序
- Xcode实用工具:Code Snippets
- 乱记-3
- UVA 11174 - Stand in a Line(组合递归计数)