JAVA学习【知】异常处理

本文介绍了Java中的异常处理机制,包括编译错误与运行错误的区别、异常的分类、使用try-catch语句捕获异常的方法及finally块的作用。

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

在写程序时我们经常会遇到一些错误。
错误分为编译期间错误和运行期间错误
编译错误指 程序中缺少一个分号或者括号之类而导致程序无法运行,这种错误其实是很好找到的。
运行错误指 程序在运行后才出现的错误,比如数组下标越界,除0溢出,相对来说这种错误更难发现些

但JAVA具有异常处理的功能
异常就是运行期出现的错误,那么如何处理这些异常呢?
例:

public class TestEx {

 
 public static void main(String[] args) {
 int [] arr={1,2,3,4};
 System.out.println(arr[4]);

 }

}
运行后会提示
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
 at TestEx.main(TestEx.java:7)
大概的意思就是在第7行出现一个JAVA.lang包里的数组越界的异常,出现异常的数字是4。
这样我们就知道了原来是数组越界了,那么我只需要把4改到4以内就OK。


但是对于这个异常提示来说显得太专业化,用户也许不明白这个错误到底是什么意思,所以我们可以用
try{}
catch(){
}语句来捕获异常,让错误提示更加直观。


public class TestEx {

 
 public static void main(String[] args) {
 int [] arr={1,2,3,4};
 try{
  System.out.println(arr[4]);
 }
 catch(ArrayIndexOutOfBoundsException e){ // e是异常对象,名字任意
  System.out.println("数组下标越界了");
 }
 }

}

try和 catch是关键字 而且必须一起用
try{}:里的代码是可能要出现错误的代码
catch(){}:是捕获异常,之后自己决定该怎么解决这个错误。

 


异常的分类

Throwable是根类 分两类
Error( 系统错误),Exception(可处理异常)
Exception 分为RuntimeException(经常出的错误,此错误可抓也可不抓),其他异常(必须catch);

异常是否需要catch就要去API里去查。

另外一段程序可能会抛出多个异常
那么try后面可以跟着多个catch(){}


finally 语法

try{
 可能抛出异常的语句}
catch(异常类){
......}
finally{

}

finally是一个关键字,无论异常是否出现都要运行finally

finally用处:
进行资源的清楚工作,比如关闭文件,删除临时文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值