Java异常及处理方式

异常概述

思考:当代码出现了问题,程序是如何体现的?

	异常就是用来描述代码中出现的问题。
	异常:就是程序出现了不正常的情况。程序在执行过程中,出现的非正常的情况。
	最终会导致 JVM 的非正常停止。
	注意:语法错误不算在异常体系中。

异常体系

在这里插入图片描述

编译时异常和运行时异常

在这里插入图片描述简单来说:编译时异常就是在编译的时候出现的异常,运行时异常就是在运行的时候出现的异常。

JVM的默认处理方案

 如果程序出现了问题,我们没有做任何处理,最终 JVM会默认做处理。
 1.JVM 会把异常的名称,异常原因及异常出现的位置等信息输出在控制台。
 2.程序停止运行。

小结

	1.异常就是程序出现不正常的的情况。
	2.异常的两类?
			编译时异常、运行时异常
	3.虚拟机默认处理异常的方式?
				将异常信息以红色字体打印在控制台,结束程序运行。

异常处理方式

异常处理方式——throws

格式:

throws 异常类名;
注意:这个格式是写在方法的定义处,表示声明一个异常。

编译时异常因为在编译时就会检查,所以必须要写在方法后边进行显示说明。
运行时异常因为在运行时才会发生,所以在方法后边可以不写。

抛出对象 ——throw

思考:以前出现了异常,虚拟机会帮我们创建一个异常,抛给调用者。
但是如果我们需要自己手动创建一个异常对象该如何写?

格式:
throw new 异常();
注意:这个格式是在方法内,表示当前代码手动抛出了一个异常,下面的代码不用再
执行了。

throws 和 throw 的区别

throwsthrow
用在方法声明后边,跟的是异常类名用在方法体内,跟的是异常对象名
表示声明异常,调用该方法有可能会出现这样的异常表示手动抛出异常对象,由方法体内的语句处理

抛出处理异常的意义

  1.在方法中,当传递的参数有误,没有继续进行下去的意义了,则采取抛出处理,
    表示让该方法结束运行。
  2.告诉调用者方法中出现了问题。

异常处理方式——try…catch…

 格式:
try {
可能出现异常的代码;
}catch(异常类名 变量名) {
异常处理的代码;
}

好处:可以让程序继续往下执行。

注意:

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

	程序正常执行。

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

  会正常执行。

如果出现的问题没有被捕获,那么程序如何运行?

   程序会将异常继续向上抛给调用者,直到抛给虚拟机,虚拟机进行默认处理。

同时出现多个异常怎么处理?

    定义多个 catch 语句。顶级异常父类必须放在子类的最底下。

Throwable 的成员方法

方法名说明
public String getMessage()返回 throwable 的详细信息字符串
public String toString()返回此可抛出的简短描述
public void printStackTrace()把异常的错误信息输出在控制台(字体加红)但下面的代码可以正常执行

两种处理异常方式的小结

抛出 throw throws

    1.在方法中,当传递的参数有误,没有继续运行下去的意义了,则采取抛出处理,
      表示让该方法结束运行。
    2.告诉调用者出现了问题。

捕获 try…catch

	捕获:能让代码继续往下运行。

自定义异常

步骤

   1.定义异常类
   2.写继承关系
   3.空参构造
   4.有参构造

在这里插入图片描述

自定义异常存在的意义

	就是为了让控制台的报错信息更加的见名知意。

小结

	1.为什么要学习异常?
			因为我们要处理代码中出现的问题。
	2.异常的处理方式:抛出和捕获
			抛出的意义:让方法停止并告诉调用者这里出现了问题。
			捕获的意义:让程序可以继续往下执行。
	3.自定义异常的意义:让程序的提示报错更加的见名知意。
  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

续写青春.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值