Java异常处理——捕获和处理异常,throws和throw关键字

异常的概念:

程序在执行过程中,出现意外,这种情况叫做出现了异常;

出现 异常之后,程序就终止了,不能继续运行下去;

那么,java程序中的异常我们可以捕获然后处理,这样后面的程序就可以继续执行了;

上代码:

package m12d28;

public class ExceptionDemo01 {

	public static void main(String[] args) {
		String s="123a";
		try{
			int a=Integer.parseInt(s);
		}catch(Exception e){
			e.printStackTrace();
			System.out.println("异常执行");
		}
		System.out.println("继续执行");
	}
}

输出结果:

 

如果在catch里面添加一个return的话;

package m12d28;

public class ExceptionDemo01 {

	public static void main(String[] args) {
		String s="123a";
		try{
			int a=Integer.parseInt(s);
		}catch(Exception e){
			e.printStackTrace();
			System.out.println("异常执行");
			return;
		}
		System.out.println("继续执行");
	}
}

结果是:

 可以看到,加一个return的话就直接返回方法了,不会执行到后面的代码;

但是如果由一段代码必须执行的话,这时可以用到finally关键字;

package m12d28;

public class ExceptionDemo01 {

	public static void main(String[] args) {
		String s="123a";
		try{
			int a=Integer.parseInt(s);
		}catch(Exception e){
			e.printStackTrace();
			System.out.println("异常执行");
			return;
		}finally{
			System.out.println("finally");
		}
		System.out.println("继续执行");
	}
}

运行结果:

 可以看到finally也执行了;

 

throws 和 throw;

 

throws表示当前方法不处理异常,而是交给方法的调用出去处理;

throw表示直接抛出一个异常;

 

throws的用法:

package m12d28;

public class throwsException {

	public static void throwException() throws NumberFormatException{
		String s="123a";
		int a=Integer.parseInt(s);
		System.out.println(a);
	}
	
	public static void main(String[] args) {
		try{
			 throwException();
			 System.out.println("here");
		}catch(Exception e){
			e.printStackTrace();
			System.out.println("在这里处理异常");
		}
		System.out.println("在这里");
	}
}

这里是直接将异常抛给方法的调用;

结果为:

 

throw的用法:

package m12d28;

public class throwsException2 {

	public static void throwException(int a) throws Exception{
		if(a==1){
			throw new Exception("有异常");
		}
	}
	
	public static void main(String[] args) {
		try{
			 throwException(1);
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

这里可以在任何一个地方抛出异常;

 结果为:

 

在实际开发中,throws关键字用得较多; 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值