第十三次作业

1,认识异常

生活中的异常,比如:

package 第十三次作业;

class Exc{//方法
	int i=10;//定义值
}
	public class ExceptionDem01 {
		public static void main(String[] args) {
			Exc e=null;//创建对象
//			e=new Exc();
			System.out.println(e.i);//调用方法
			
}
}

运行结果 

 数学中的异常

package 第十三次作业;

	public class ExceptionDem01 {
		public static void main(String[] args) {
			int a=10;//定义值
			int b=0;//定义值
			int temp=a/b;//计算结果
			System.out.println(temp);//输出语句
			
}
}

运行结果 

2,处理异常

1.异常格式:

try{

                异常语句

}catch(Exception e){

}finally{

一定会执行的代码

}

package 第十三次作业;

	public class ExceptionDem01 {
		public static void main(String[] args) {
			int a=10;//定义值
			int b=0;//定义值
			int trmp=0;//定义值
			try {// try语句处理异常信息
				trmp=a/b;//计算结果
			}catch(ArithmeticException e) {//捕捉是否异常
				System.out.println(e);//输出结果
			}
			System.out.println(trmp);//输出语句
			
}
}

运行结果 

3,常见异常

1.数组越界异常:ArryIndexOutOfBoundsException ;

2.数字格式化异常:NumberFormatException ;

3.算数异常:ArithmeticException ;

4.空指针异常:NullPointerException 。

package 第十三次作业;
class Exc{
	int a=10;//定义值
	int b=10;//定义值
}
	public class ExceptionDem01 {
		public static void main(String[] args) {
				int temp=0;//定义值
				Exc e=null;
				e=new Exc();//创建对象
				temp=e.a/e.b;//计算值
			System.out.println(temp);//输出语句
		System.out.println("程序输出");//输出语句	
			}
		}

运行结果 

package 第十三次作业;
class Exc{
	int a=10;//定义值
	int b=10;//定义值
}
	public class ExceptionDem01 {
		public static void main(String[] args) {
				int temp=0;//定义值
				Exc e=null;
				//e=new Exc();//创建对象
				try {//是否异常
					temp=e.a/e.b;//计算值
					System.out.println(temp);//输出语句
				}catch(NullPointerException e2) {//获取异常
					System.out.println("空指针异常:"+e2);//输出
				}catch(ArithmeticException e2) {//获取异常
					System.out.println("算数异常:"+e2);//输出
				}
		System.out.println("程序输出");//输出语句	
			}
		}

运行结果 

 4,throws关键字

1,在定义一个方法的时候可以使用throws关键字声明,使用throws声明的方法表示此方法不处理异常,抛给方法的调用者处理。

2,格式:

public void tell() throws Exception{}

 

package 第十三次作业;

public class ExceptionDem02 {
	public static void main(String[] args) {
		tell(10,0);//创建数组
	}
	public static void tell(int i,int j) throws ArithmeticException {//抛出异常
		int temp=0;//定义值
		temp=i/j;//计算
		System.out.println(temp);//输出
	}

}

运行结果 

 使用try...catch:

package 第十三次作业;

public class ExceptionDem02 {
	public static void main(String[] args) {
		try {
			tell(10,0);//创建数组
		}catch(Exception e){//捕捉异常
			System.out.println(e);//输出
		}
		
	}
	public static void tell(int i,int j) throws ArithmeticException {//抛出异常
		int temp=0;//定义值
		temp=i/j;//计算
		System.out.println(temp);//输出
	}

}

运行结果 

如果方法抛出了异常,调用方法时,必须为捕捉的方法处理异常,当然,如果使用throws关键字将异常抛出给上一级后,不想处理该异常,可以继续向上抛出,但最终有能够处理异常的代码。

5,throw关键字

throw通常用来抛出用户自定义异常,抛出的时候异常类的实例化对象即可。

package 第十三次作业;

public class ExceptionDem02 {
	public static void main(String[] args) {
		try {
			throw new Exception("实例化异常对象");//抛出
		}catch(Exception e){//捕捉异常
			System.out.println(e);//输出
		}
		
}}

运行结果 

 

6,自定义异常

自定义异常直接继承Excemtion类就可以完成自定义异常类

package 第十三次作业;

class MyException extends Exception{
	public MyException(String msg) {
		super(msg);
	}
}
public class ExceptionDem02 {
	public static void main(String[] args) {
		try {
			throw new Exception("实例化异常对象");//抛出
		}catch(Exception e){//捕捉异常
			System.out.println(e);//输出
		}
		
}}

运行结果 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值