JAVASE-23:IO流预备知识之异常及其处理

IO流:用来处理设备之间的数据传输。

数据在电脑中以文件形式来体现,传输过程中可能会出现一些异常,我们要对这些异常进行处理,所以我们在学习IO流之前,需要先学习 文件(File类)异常


异常

异常就是Java程序在运行过程中出现的错误。

异常的分类

1.骑自行车旅游–车胎没气-,这个问题对于他来说是个小问题-可以选择解决可以不解决(运行期异常)。

2.也有可能骑着骑着,车胎飞了,那这个问题就是一个严重性问题,他无法解决(Error)。

3.还有一种情况,就是在出门前,他检查了一下车闸,发现车闸松了,那这个问题,就必须要解决,不解决不能上路(编译期异常)。

异常的继承体系

异常的基类- - -Throwable 用来描述各种所有问题,是Java中所有错误或异常的超类。
	
	1.严重问题:	Error	Throwable的子类,用于指示合理的应用程序不应该试图捕获的严重问题,一般处理不了,不予处理,因为这种问题一般是很严重的问题,比如: 内存溢出。
	
	2.非严重问题:	Exception  及其子类是Throwable的一种形式,他指出了合理的应用程序想要捕获的条件,异常 属于一般性。
	
					2.1编译时异常:	非RuntimeException及其子类,必须解决,不解决程序无法运行。
					2.2运行时异常:	RuntimeException及其子类,可以选择解决,也可以不解决。

1.运行期异常

RuntimeException及其子类,运行期异常我们自己可以解决,也可不不解决。

ArithmeticException 除数为0的异常:

public static void main(String[] args) {
   
    int a=10;
    int b=0;
    System.out.println(a/b);
    System.out.println("下面代码");// 不会执行
    System.out.println("下面代码");// 不会执行
}

对于运行期异常,我们自己自己没有处理,就交由JVM去处理,JVM的默认处理方式是,打印详细的异常信息,然后退出虚拟机。

如果你觉得JVM默认处理异常的方式,不够友好,那么我们可以自己去捕获这个异常,自己来处理。

我们可以使用try catch 来进行异常的捕获处理,try 里面放的是你认为有可能会出现异常的代码。

catch(ArithmeticException e) catch 小括号里面定义的是,你将要捕获的何种异常。catch 大括号里面 放的是,一旦发生你捕获的这种异常,你的处理方式是什么。

public static void main(String[] args) {
   
    int a = 10;
    int b = 0;
    try {
   
        System.out.println(a / 0);
    }catch (ArithmeticException e) {
   
        System.out.println("除数为0了");
    }
    System.out.println("下面代码");
    System.out.println("下面代码");
}

注意的有两点

1.try里面尽可能放的是,有可能出现问题的代码。
2.一旦发生异常,异常的处理,不能空处理,即便你打印一句话提示一下,都行。

public static void main(String[] args) {
   
    int[] arr={
   2,3};
    int a=1;
    int b=0;
    arr=null;
    // 1.你能明确的异常,尽量明确,不要拿一个最大的异常一捕了之。
    // 2.捕获多个异常时,大的异常,放在最后面,平级关系的异常,谁前谁后无所谓。
    try{
   
        System.out.println(arr.length);
        System.out.println(a / b);
        System.out.println(arr
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值