您的位置:首页 > 编程语言 > Java开发

Java中的异常处理机制

2011-06-18 08:32 323 查看
本文Java机制的一概念的目的在便若是忘
了这
西片文章

1.异常机制

1.1

异常机制是指当程序出现误后制提供程序
退出
错误执行发生序的转移常处


1.2

传统的处理异常的办法是,函返回殊的结示出异常通常个特
殊结
是大约定称的调用该函的程检查分析数返样做有
如下
-1,但如果返回-1个正
就会
码与常的爹在一起调用的程
来分
户程的了解

1.3异常处理流程

1.3.1遇到错,方法,并不返一个,抛异常

1.3.2调用该方法的程也不会而是理该异常
处理


2异常的分类

2.1异常的

2.1.1

异常的继承结类为ThrowableErrorException继承Throwable
RuntimeExceptionIOExceptionException具体RuntimeException
RuntimeException

2.1.2

ErrorRuntimeException检查unchecked异常
成为
checked

2.2每个类常的

2.2.1Error

Error述了Java内部耗尽。应用程
序不
该抛这种对象(一般由虚果出错误,除了尽力使程 序安退面是力的在进行关注Exception


2.2.2Exception体系

Exception包括RuntimeException体系和其他RuntimeException

2.2.2.1RuntimeException

RuntimeException型转访访问空针等
RuntimeException果出RuntimeException一定是程员的
查数避免访

2.2.2.2IOException

这类异常一般是外部错误,例试图尾后读并不是程序身的
,而出现错误

2.3C++分类不同

2.3.1

JavaRuntimeException行时现的

编译时现的错误并不是异句话是为了决程序运时出现的的错


2.3.2

C++logic_errorJavaRuntimeException是等runtime_errorJava

RuntimeException类型的异

3异常使用方法

3.1声明

3.1.1throws

3.1.2为什方法抛出

方法返回设方明该法将抛
出异
客户可以且不用编
,那有合

3.1.3为什异常一定

RuntimeExceptionError以在任示的,一 旦出那么异常检查
:客户序员抛出常的函数(库数的常由程序抛出程序员

使throwError
RuntimeException一定是程要对程进行修当于调试的一
种方
才是心的序应理已

3.1.4

类某子类法不能方法异常有时类的
方法
但实却并不抛异常的目为了
方便
法时

3.2如何

3.2.1throw略)

3.2.2抛出

对于有用类型对象无意义
个异常对象的
型是ClassCastException那么个类名就是唯有用的
选择
关键名能的类

3.2.3

异常函数造函数字符造函
数,将作为个异外的

3.2.4

创建Java内置都不能说明时候要创
意的一有用的就是型名这信息以不要在的设费精


3.3捕获

如果处理图形界面而言会被输出
异常
界面的信回用

Ы?BR>3.3.1trycatchfinally(略

控制try块后一个会搜寻参数与
相符
它会进入catch

,并控制catch束对会停止

3.3.1.1捕获意语略)

3.3.1.2finally的用法与常处略)

3.3.2异常

对于Java有了垃圾并不依然
源需
如文等资源

3.3.3应该抛出异常是在方? 原:捕道如,而递哪异常

3.3.4再次

3.3.4.1为什抛出异常

在本能处分内处理要在所以再次
出异
使的异处理异常

3.3.4.2异常

对应与同try块的catch块将将进

4关于问题

4.1过度使

使常很便所以编写代码仅仅单单
的抛
是不,对的错种错, 增加。另,异

4.2将异分开

对于处理误的加程
的不
时错使

4.3异常

一般一有用的息就是使用异的构

作为用异getMessage()toString()printStackTrace()可以分别信息类名和信息
一种
的超集

程序JVM就会抛
比如
ArrayIndexOutOfBoundsException
pub
licvoiddemo1(){

try{

inta=10/0;

}catch(ArithmeticExceptionae){

System.out.println(“术运算异:”+ae.getMessage());

}catch(Exceptione){

System.out.println(“他异+e.getMessage());

}

}

publicvoiddemo2(){

StringstrList[]={"a","b","c"};

try{

Stringstr=strList[4].toString();

}catch(ArrayIndexOutOfBoundsExceptionae){

System.out.println(“组下标越:”+ae.getMessage());

}catch(Exceptione){

System.out.println(“他异+e.getMessage());

}

}

总之Exception有异常的.常被捉了,他就不会

demo2()是出现了ArrayIndexOutOfBoundsException

Exception就不!

那么次呢ArrayIndexOutOfBoundsException只是数组下标
,它比Exception的仔,!

如果不是ArrayIndexOutOfBoundsExceptionException

异常建一异常进行承于Exception

,你写自

classMyExceptionextendsException{

//.....你做处理

}

当你在程使时候使

publicstaticvoidmain(String[]args){

try{

}catch(MyExceptionme){//己的异常

}catch(Exceptione){//

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: