Java异常处理

Java异常处理

  1. 程序中对函数调用失败的表示:
    c语言中使用常使用函数返回值来表示,返回0表示调用成功,返回非0值表示调用失败
    java中使用异常机制,异常为一个类类型,其中包含了异常的类型信息。
  2. Java中的异常分为两类:
    Error:严重错误,程序无法处理,如:OutOfMemoryError(内存耗尽)
    Exception:运行时错误,可以由程序捕获并处理,如SocketException(网络读取失败)。而Exception又分为两类:
    RuntimeException
    非RuntimeException,如IOException
  3. Java中必须捕获的异常:Exception及其子类,但不包括RuntimeException及其子类。
    必须捕获的意思是,如果不加try-catch,则程序编译不通过。
    例如:
import java.io.*;

public class IOExceptionPractice {
	public static void main(String[] args) {
		try {
			//可能抛出FileNotFoundException
			FileReader fileReader = new FileReader("test.txt");
			BufferedReader bufferReader = new BufferedReader(fileReader);
			//可能抛出IOException
			String line = bufferReader.readLine();
			System.out.println(line);
		} catch (FileNotFoundException e1) {
			System.out.println(e1);
		} catch (IOException e2) {
			System.out.println(e2);
		}
	}
}

代码中创建FileReader对象时,可能会抛出FileNotFoundException异常,在readline()函数可能会抛出IOException异常。这两种异常都是必须捕获的异常,如果不加try-catch,对导致程序编译不通过。

  1. 在对多个异常进行捕获时,可以使用多个catch,如上述程序中,使用了两个catch。需要注意的是,在使用多个catch时,子类异常必须要放在父类异常的前面,例如:上述代码中FileNotFoundException异常时IOException异常的子类,如果先对IOException放在上面,那么编译会报错,因为FileNotFoundException也会被视为IOException异常捕获。如下图所示。
    在这里插入图片描述
    可以看出,编译器提示FileNotFoundException异常已经被捕获了。

  2. 对于那些不论异常是否发生,我们都希望执行的代码,可以放在finally字句里面。
    finally字句不是必须的,如果出现,就是最后执行的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值