栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

day

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

day

异常:

ERROR:无法预先通过代码进行处理
Exception:因为编程错误、外部因素引发的问题
Exception根据错误发生的时间分为:

  • 编译期
  • 运行期

异常处理:抓抛模型
抛:一旦出现异常,就会生成一个异常类的对象,抛出异常后,后续代码不再执行
抓:异常处理

第一种处理方式: try-catch-finally:

在编译过程中不在报错,但是运行时还是会报出。

try{  
可能出现异常的代码块
}catch(异常类型1,变量名){处理方式}
catch(异常类型2,变量名){处理方式}
catch(异常类型3,变量名){处理方式}
finally(
一定会执行的代码
)

根据try中发生的异常种类,对catch进行匹配,若成功处理则跳出try-catch结构,满足子父类关系,父类的catch往后面放。
catch中常用的方式:

  • a.getMessage()
  • printStackTrace()
    try结构中声明的变量,在try无法使用,可以在外面声明,try内使用。
    若存在return 则先执行finally中的语句后再return,例如数据库连接断开、I/O流等 一定要执行的情况:file.close()
第二种处理方式: throws + 异常类型:

逐层向上抛,最终还是通过try-catch方法处理


在method3调用method2后,异常抛给3,在3中try掉。

子类重写后抛出的异常不能大于父类被重写方法抛出的异常,父类没有抛异常,子类不能抛,只能通过try自己解决。

手动抛出异常(throw)
package welcome_java;


public class testTest {

    public static void main(String[] args) {
    id i = new id(100);
    i.idTest();
    id i2 = new id(-1);
    i2.idTest();
    }
}
class id{
    private  int ids;
    
    public id(int id) {
        this.ids = ids;
    }
    
    public void idTest(){
        if(ids>0){
            System.out.println("true");
        }else{
            throw new RuntimeException("非法id");
        }
    }

}

通过手动抛出异常,规范id的输入。

自定义异常类:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/695388.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号