自定义异常

本文深入讲解了自定义异常类的创建及使用,包括如何继承异常体系、throw与throws关键字的应用,以及try-catch-finally语句块的执行流程。通过具体示例,展示了异常处理在Java编程中的实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自定义异常

/*如果一个类称为异常类,必须继承异常体系,以为只有异常类或异常类的子类才具有可抛性!!!才可以被关键字throw和throws操作
//throws使用在函数上 列如:void aaa()throws 自定义的异常类或者系统自带的异常类 {}
//throw使用在函数中 列如: void aaa(){
// if(true)
// throw new 自定义的异常类或者系统自带的异常类 //需要与上抛出的异常类保持一致!!!!实际上抛出的是一个对象

  • }
  • try{
  •  需要被检查的代码,只是发现了异常 ,然后抛给catch处理    eg:调用了异常方法的代码  aaa();
    
  • }
  • catch(异常类 变量)这里的变量实际上是接受了抛出了异常的对象!!!这里的异常类也得与抛出的异常类保持一致!!!!!
  • {
  •  处理异常的代码   eg:输出发生异常的原因等等!!! 		
    
  • }
  • finally
  • {
  •  一定会被执行的代码!!!!
    
  • }

*/
class FuShuIndexException extends Exception{// 自定义了一个异常类

public FuShuIndexException(String s){
	super(s);//此时写这个是为了调用父类异常中的getMeseage();方法,为了得到输入的         s    !!!!!!!!!!
}

}

class DeChao{
public int ermeng(int[] arr,int index)throws FuShuIndexException{
if(index<0)
throw new FuShuIndexException(“输入的角标不能小于零!”);
return arr[index];

}

}
public class ExseptionDemo {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	int[] arr = new int[3];
	DeChao d = new DeChao();
	try{//因为ermeng方法抛出了异常,而这里调用了ermeng方法,并且赋值给了a,所以输出a的语句也需要被检测!!!然后抛给catch处理
		int a= d.ermeng(arr, -20);
		System.out.println(a);
	}
	catch(FuShuIndexException e){
		System.out.println(e.getMessage());
		//System.exit(0);
		return ;
		
	}
	finally{//finally:一定一会执行的代码块,除了 关闭了 虚拟机(System。exit(0))!!!!它里面的代码是不会被执行!,哪怕是结束了函数,依然会被执行!!!!
		System.out.println("haha");
	}
	System.out.println("over");
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值