Java中的异常机制

本文详细介绍了Java中的异常概念,包括异常的定义、分类以及如何通过try、catch、finally等语句进行异常处理。同时,文章还讲解了如何分析异常信息进行程序调试,并探讨了在不同场景下是否需要处理异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[color=red]1.什么是异常?[/color] 通俗的讲就是:出错了,导致程序终止运行。
所谓的异常也指可能由与外部系统的,导致程序可能出错的原因。
异常就是异常事件,它是程序遇到异常情况所激发的事件。许多异常,如程序错误,空指针,数组溢出等

[color=red]2.Java中的异常分类:[/color] 其中分为两大类:Error和Exception
Error:通常表现为硬件的问题,例如:你写的程序出现了栈溢出,但是本身程序没有死递归死循环,可能就是电脑本身的内存过小导致的。
Error异常一般是解决不了的一些异常。
Exception:这种异常是可以解决的异常,是为了给程序员能更快的找到出错的地方所提供的一种类。指出合理的应用程序想要捕获的条件

[color=red]3.try、catch、finally的处理机制[/color] 1.try和catch语句
将要处理的代码放入try块中,然后创建相应的catch块的列表。如果生成都异常与catch中提到的相匹配,那么catch条件中的块语句就被执行。try块后可能有许多catch块, 每个都处理不同的异常。每个catch中的参数都是Exception

的子类。
例如:
try{
语句一;
语句二;
}catch(语句一的异常条件){
语句三;
}catch(语句二的异常条件){
语句四;
}
如果语句一出现异常,则不会执行语句二,直接跳到语句三,也不会执行语句四,如果语句一没异常,语句二异常,则跳到语句四。

2.finally语句
finally语句定义一个总是执行的代码,而不考虑异常是否被捕获。
例如:
try{
语句一;
}catch(语句一的异常条件){
语句二;
}finally{
语句三;
}
不管语句一是否异常,语句三都会执行,如果语句一没有异常,则执行语句一和三,如果语句一异常,则执行语句二和三。

[color=red]4.异常信息分析与程序调试[/color] 1.根据异常类,来确定异常的类型(从JDK的API中寻找)
常见的异常有哪些?
空指针 NullPointerException
数组下表越界 ArrayIndexOutOfBoundsException
栈溢出
文件不存在 UnsupportedOperationException
类型转换异常 ClassCastException
参数为负数 IllegalArgumentException
2.根据异常的提示信息找到出错的行(位置)【第一个类名是否是你定义的,如果不是,则再看下一行】
4.分析问题(一般采用System.out.println();)
5.修改代码
[color=red]
5.在哪里抛出异常的呢?[/color] 强制异常是哪里来的?
可以用throw实例化一个异常对象,throws是将异常对象抛出,不进行处理。
例如: File jf = new File(fileName);
jf.createNewFile();这个方法就含有异常,其方法名为: public boolean createNewFile() throws IOException{....}向外抛出了一个异常IOExcepetion

可以强制抛出一个异常
例如:
public class Test{
public static void main(String args[]){
try {
throw new ArrayIndexOutOfBoundsException();
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println(e);
}

}

}
[color=red]6.什么时候异常必须处理掉?[/color] 写软件时,出现异常就必须要处理掉,不要往外抛出异常,因为异常不处理掉,当客户使用的时候,就很多异常,会使软件的使用带来极大的不便,会造成客户的流失等等。
[color=red]7.什么时候异常可以不处理[/color] 写第三方的插件时,就要向外抛出异常,而不要去处理异常。因为这样可以给程序员一种提醒,当出现错误的时候也容易找到错误点,而不是在出现错误的时候很茫然,不知所措。

[color=red]6.Debug模式调试错误[/color] 在eclipse中存在一种调节模式叫Debug调节,这个一般情况下不使用,因为这只对于熟悉的人来说比较好用,对于菜鸟或者入门级的建议不要用,因为你会被搞晕的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值