【无标题】

【无标题】,第1张

【无标题】 异常处理

异常是程序中的一些错误,但并不是所有错误都是异常。
例如:你打开要一个不存在的文档,用户输入的路径不合适,网络连接不上等叫做异常。
要理解Java异常处理是如何工作的,需要掌握以下三种类型的异常:

检查性异常:比如用户错误或问题引起的异常,这是程序员无法预见的。
运行时异常: 运行时异常是可能被程序员避免的异常。
错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。
所有的异常类是从 java.lang.Exception 类继承的子类,Exception 类是 Throwable 类的子类。除了Exception类外,Throwable还有一个子类Error ,
异常类有两个主要的子类:IOException 类和 RuntimeException 类。

异常处理机制从两个方面说起,抛出异常,捕获异常。
异常处理的五个关键字:
**try:**正常 *** 作时输出的结果。
**catch:**写入的是你想要捕获的异常,比如 ArithmeticException(一个整数"除以零"时,抛出此类的一个实例),NullPointerException(用户输入空值时报错),ArrayIndexOutOfBoundsException(索引为负或大于等于数组大小),ClassNotFoundException(应用程序试图加载类时,找不到相应的类)等。可以捕获一个异常也可以捕获多个异常。
**finally:**可以写入也可以不写,是捕获异常完成后的一些后续工作,比如资源关闭时。
throw:抛出一个异常
throws:抛出多个异常,用逗号隔开。
自定义异常类
所有异常都必须是 Throwable 的子类。如果希望写一个检查性异常类,则需要继承 Exception 类。如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。
定义了一个异常类:

public class DangerException extends Exception { //危险异常类继承了异常类
	String message;
	public DangerException() {
		message = "危险品!";
		
	}
	public void toShow() {
		System.out.println(message+" ");
	}

}

抛出一个异常:

public class Machine {
	public void checkBag(Goods goods) throws DangerException{ //抛出一个异常类
		if(goods.isDanger()) {
			DangerException danger = new DangerException(); //定义一个新的异常类的对象,在出现异常是的提示语
			throw  danger; 
		}
		else {
			System.out.println(goods.getName()+"不是危险物品!");
		}
	}
}

调用抛出的异常类

public class Check {

	public static void main(String[] args) {
	Machine machine = new Machine();
	String name[] = {"苹果","炸药","西服","硫酸","手表","硫磺"};
	Goods[] goods = new Goods[name.length];
	for(int i = 0;i 

异常类的返回顺序
按照正常情况下,应该是顺序执行,如果try执行完了就执行finally,但是如果加入了return之后就会有几种不同的情况。
①执行完try的数值运算后,将数值保留在return中,在执行finally。
②catch和try中的return一样
③当finally中有return是,try中的return则失效。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5612212.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存