第十三次Java作业

Java异常处理

认识异常

1、异常是导致程序中断运行的一种指令流,如果不对异常进行正确处理,则可能导致程序的中断执行,造成不必要的损失。

Java异常强制用户去考虑程序的强健性和安全性。异常处理不应该用来控制程序的正常流程,其主要作用是捕获程序在运行时发生的异常并进行相应的处理。

2、异常实例

(1)

package 第十三次Java作业;

class Exc{
	int i = 10;
}

public class ExceptionDemo1 {
	public static void main(String[] args) {
		Exc e = null;
		e = new Exc();
		System.out.println(e,i);
}
}

运行结果:

 (2)

package 第十三次Java作业;
 
class Exc {
	int i = 10;
}
 
public class ExceptionDemo1 {
	public static void main(String[] args) {
		int a = 10;
		int b = 0;
		int temp = a/b;
		System.out.println(temp);
	}
}

一、捕获异常

1.异常格式:

try {
    异常语句
}catch(Exception e) {
}finally {
    一定会执行的代码
}

 捕获异常:

package 第十三次Java作业;
 
class Exc {
	int i = 10;
}
 
public class ExceptionDemo1 {
	public static void main(String[] args) {
		int a = 10;
		int b = 0;
		int temp = 0;
		try {
			temp = a/b;
		}catch (ArithmeticException e) {
			System.out.println(e);
		}
		System.out.println(temp);
	}
}

运行结果:

  无异常将正常输出:

package 第十三次Java作业;
 
class Exc {
	int i = 10;
}
 
public class ExceptionDemo1 {
	public static void main(String[] args) {
		int a = 10;
		int b = 10;
		int temp = 0;
		try {
			temp = a/b;
		}catch (ArithmeticException e) {
			System.out.println(e);
		}
		System.out.println(temp);
	}
}

二、常见异常

1.数组越界异常:ArryIndexOutOfBoundsException ;

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

3.算数异常:ArithmeticException ;

4.空指针异常:NullPointerException 。

package 第十三次Java作业;
 
class Exc {
	int a = 10;
	int b = 10;
}
 
public class ExceptionDemo1 {
	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 第十三次Java作业;
 
class Exc {
	int a = 10;
	int b = 10;
}
 
public class ExceptionDemo1 {
	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("程序输出");
	}
}

运行结果: 

 三、throws关键字

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

public void tell() throws Exception{}
package 第十三次Java作业;

public class ExceptionDemo2 {
	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 第十三次Java作业;

public class ExceptionDemo2 {
	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关键字将异常抛给上一级后,不想处理该异常,可以继续向上抛出,但最终要有能够处理该异常的代码 。

四、throw关键字

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

package 第十三次Java作业;

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

}

运行结果: 

 

五、自定义异常

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

package 第十三次Java作业;

class MyException extends Exception{	//创建自定义异常,继承Exception类
	public  MyException(String msg) { 	//构造方法
		super(msg); 				//父类构造方法
	}
}
 
public class ExceptionDemo04 {
	public static void main(String[] args) { // 主方法
		try { // try代码块处理可能出现异常的代码
			throw new MyException("自定义异常");
		} catch (MyException e) {
			System.out.println(e);
		}
	}

}

运行结果: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值