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

java异常处理及自定义异常

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

java异常处理及自定义异常

 异常处理的实际上就是:

有风险的行为(方法)可能会将异常抛出(throws)。调用该方法的程序会尝试(try)去运行,运行的同时捕捉(catch)异常。

        简而言之,就是对有风险的行为进行处理。

 有风险的行为:

与程序代码上出现的逻辑问题不同(比如你对一个只有5项元素的数组取第8个元素的值),有风险的行为是指你无法保证在执行期不会出现的(例如某些文件会正确的待在某个特定的目录中,当实际执行时文件却又失踪了)。 

为什么要做异常处理:

让编译器确定你了解所调用的方法是有风险的,并也准备好用try和catch来处理它。如果对有风险的行为不进行异常状况处理则无法通过编译。

自定义异常:

我们知道,异常也不过只是一种Exception类型的对象,只不过它能够被抛出(throws/throw)和捕捉(catch)。因此,要自定义异常只需要继承Exception这个类。

所有的异常都是Exception的子类,就像java中所有的类都是Object的子类一样。

package a0304;

public class task {
	void doRisky(int num)throws numException{     //有风险的行为
		
		if (num>5) {
			System.out.print("start thrown");
			throw new numException();             //可能抛出的异常
		}
		System.out.print("throw 以后不会往下运行,直接跳转到catchn");

	}
	public static void main(String[] args) {
		
		task t1 = new task();
		
		try {                        //尝试运行程序,如果捕捉到异常则直接跳转到catch
			System.out.print("start tryn");
			t1.doRisky(6);
			System.out.print("end tryn");

		}
		catch(numException a){
			System.out.print("start catchn");
			a.printStackTrace();                  //对应第40行代码
			System.out.print("end catchn");
		}
		System.out.print("enddddddddddddddd!");
	}
}

//自定义异常类
class numException extends Exception{
	
	private static final long serialVersionUID = 1L;

	numException() {
		super("数字异常!!!");
	}
}

运行结果:

 如果把19行中  t1.doRisky(6); 改为   t1.doRisky(4);运行结果如下:

 

 

 

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

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

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