黑马程序员 Java基础知识总结-异常处理

在理想状态下,用户输入数据的格式永远都是正确的,选择打开的资源(文件或数据库资源)也一定存在 ,并且程序永远不会出现bug,但是这是永远不可能的。既然我们不能避免异常我们要怎么处理异常呢 ?java语言有是怎么样提供异常处理技术的 。

java中异常主要分为两类,一是编译时被检测的异常;Exception和其子类,除了RuntimeException体系。二是编译时不检测的异常;Exception中的RuntimeException体系

编译时:这种问题出现,让编译时被检测到以便处理,即这种问题可以被处理。编译时不处理,无法让功能继续,更多是因为调用者引发而产生的,此种问题一般不处理,但在运行时程序强行停止,让调用者进行代码修正。

java中可以使用throws抛出异常,也可以使用try{}catch(){}finally{}处理异常。

throws使用在函数内上,抛出异常类,可同时抛出多个用逗号隔开。


下面看一个例子:

public class TestException{	
	public static void main(String[] args){
		int[] arr = new arr[3] ;
		getArrayValue.getValue(arr,4);
	}
}
class FushuException RuntimeException{ //自定义异常类	
	FushuException(){		
	}	
}
class getArrayValue{
	/*
		函数功能:返回指定数组下标为i的元素值。
			 如果i值是否在合法值的取值范围
	*/
	public static int getValue(int[] arr,int  i){
		if(i>arr.length){ //i值大于数组下标抛出数字下标越界
			new IndexOutOfBoundsException();
		}else if(i<0){
			new FushuException(); //i值小于数字下标越界抛出下标不能为负异常,此
		}else{
			return arr[i];
		}
	}
}

自定义异常:

1、用户自定异常类的时候要么继承Exception要么继承RunException。当继承Exception类时,是在编译时抛出异常,此时要在编译的时候解决。当继承RuntimeException异常类时,程序中出现的异常讲在程序运行是抛出。

2、继承Exception或RuntimeException的原因:
1)异常体系有一个特点:异常类和异常对象都被抛出,他们都具有可抛性。这个可抛性是Throwable这个体系单独有的特点,只有此体系中的类和对象才可被throws和throw操作。
2)为了让该类具备操作异常的共性方法。
3、定义异常信息:

异常处理原则,1、函数内部如果抛出需要检测的异常,那么还书上必须声明,否则在函数内部try掉,否则会编译失败。2、如果调用了声明异常函数要么try掉要么throws,否则编译失败。3、在功能函数内部可以解决的用try catch处理,若在功能函数内部不能处理的用throws抛出,由调用者解决。

【注】如果父类的方法没有抛异常,那么子类覆盖时绝对不能抛异常,此时只能try掉。 子类覆盖异常类的方法时,如果父类方法有抛异常,那么子类的方法只能抛父类的异常或者父类异常类的子类。




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值