关于java后端的 异常 学习记录

以下均为个人理解

如有不对请在评论区指正QAQ

​​​​​​黑马程序员Java零基础视频教程_下部 图片出自这里

引子

一.什么是异常

异常的分类

主要学的是Exception

总结

编译时异常

必须要手动处理,否则代码异常

运行时异常

在编译阶段是不需要处理的,是代码运行时出现的异常

二.异常的作用

 

三.异常的处理方式

1.JVM默认的处理方式

注意:这里程序停止执行,下面的代码不会再执行了

2.自己处理(捕获异常  try catch)

   程序会继续往下执行 

3.抛出异常(交给调用者处理  throw)

即把该异常交给该方法的调用者处理

javabeen

Test

四.灵魂四问

1.

如果try中没有遇到问题,怎么执行?

不执行catch语句 直接往下执行

2.

如果try中可能会遇到多个问题,怎么执行?

输出

怎么解决呢

需要让每个异常都有其相应的catch语句与之对应

注意:

如果我们要捕获多个异常,这些异常中如果存在父子关系的话,那么父类一定要写在下面

怎么记呢

  先打小怪(子类)再打boss(父类)

如果父类异常写在子类异常上面会报错

为什么会报错

所有的异常都可以被exception接收 所以下面的catch代码就不会执行了

父类太大包括了子类的所有情况

jdk7以后 可以在catch语句中写或者 (妈的又白雪)

注意是一个 | 不是两个||

表示如果出现a异常或者b异常 采取同一种处理方案

3.

如果try中遇到的问题没有被捕获,怎么执行?

程序报错

相当于try catch的代码白写 不执行catch里的代码 最后交给虚拟机进行处理(默认处理异常的方式)

4.

如果try中遇到了问题,那么try下面的其他代码还会执行吗?

输出

不会执行try下面的其他的代码 直接跳转到catch当中并执行

如果没有对应的catch与之匹配 还是会交给虚拟机进行处理

五.常见方法

最后一个方法包括前两个里输出的内容  最后一个用的多

1.getMessage

2.toString

3.printStackTrace 最常用

注意:此方法没有返回值 所以直接调用就可以

细节:打印信息 不会停止程序运行

1.以红色字体打印

2.打印的内容包括getMessage和toString 的内容

拓展

为什么是红色的字体将异常打印出来

正常的输出语句

用来打印错误信息的输出语句

以这个格式输出的内容都是红色

当以上两个输出语句同时出现时 二者的输出顺序可能和代码顺序不一样------------和多线程有关

六.异常的抛出处理

throw

另一种写法

总结

七.综合练习

Test

注意 :这里runtimeexception要写在numberformatexception后面

            因为runtime是number的爷爷

  先打小怪(子类)再打boss(父类)

javabeen

将setName直接重写

如果长度不在3-10内

创建一个运行时异常的父类抛出

将异常抛给调用者 方法就会停止 后面的代码就不会执行了--->数据就不会赋值给对象了

八.自定义异常

定义异常类

技巧:写继承关系

创建  空参构造 带参构造

alt+ins

在javabeen中写

注意:如果自定义异常是编译时异常,在调用异常的方法后面必须写throws

在方法定义处事先声明自己定义的方法

测试类中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值