异常处理【总结】

1. 异常可以分为几类?
答:Java的异常类都是java.lang.Trowable的子类,它派生了两个字类,Error和Exception。前者由系统保留,后者供应用程序使用,
 所以一般所说的异常,都是指Exception及其子类。
2. Java的异常处理机制可分为几个步骤?
答:1)抛出(throw)异常:若程序执行过程出现异常,会自动生成一个异常类对象,该对象被提交给Java运行时系统。
2)捕获(catch)异常:当系统收到异常对象,会寻找能处理这一异常的代码,并将异常对象交给其处理。
3)若系统找不到捕获异常的方法,则Java运行时系统将终止,相应的程序将退出。
3. 抛出异常和捕获异常的语法格式?finally语句是什么?
答:格式:
修饰符 返回类型 方法名(参数列表)throw 异常类名列表
try{
   语句组;
}catch(异常类名 异常形式参数名){
   异常处理语句组;
} catch(异常类名 异常形式参数名){
   异常处理语句组;
} catch(异常类名 异常形式参数名){
   异常处理语句组;
}finally{
 异常处理语句组;
}
注意,finally语句为异常处理提供一个统一的出口,不论在try代码块中是否发生了异常,finally语句都会被执行。
4. 举例,数组越界的异常
答:
public class IndexOutOf {

	public static void main(String[] args) {
		String words[]= {"words","lisa","gnosed"};
		try {
			for(int i=0;i<5;i++) {
				System.out.println(words[i]);
			}
			
		}catch(java.lang.ArrayIndexOutOfBoundsException e) {
				System.out.println("index error");
			}
		finally {
			System.out.println("\nit always come here");
		}
	}
}
5. 如何创建用户自定义异常类?
答:1)声明一个新的异常类,使之以Exception类 或其他某个已经存在的系统异常类 或用户异常类为父类。
2)为新的异常类定义属性和方法,或重载父类德属性和方法。
以下一个自定义异常类,测试登记号码非负性的异常。
class MyException extends Exception{
	private String message;
	private int id;
	public MyException(String message,int id) {
		this.message=message;
		this.id=id;
	}
	public int getId() {
		return this.id;
	}
	public String getMesag() {
		return this.message;
	}
}
public class Test {
	void regist(int num) throws MyException{
		if(num<0) {
			System.out.println("登记号码"+num);
			throw new MyException("号码为负值", 3);
		}
	}
	
	void manage() {
		try {
			regist(-100);
		}catch (MyException e) {
			System.out.println("等级失败,出错种类"+e.getId()+
					",原因是"+e.getMesag());
		}finally {
			System.out.println("本次登记操作结束");
		}
	}
	public static void main(String[] args) {
		Test2 t=new Test2();
		t.manage();
	}
}
测试结果:
登记号码-100
等级失败,出错种类3,原因是号码为负值
本次登记操作结束









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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值