try...catch的三种使用

1.    当程序运行时,会遇到各种各样的错误,导致程序退出,这些错误在Java中被统一称为异常。异常格式的组合分为三种,try...catch、try...catch...finally、try...finally。

        try {
		System.out.println("除法运算:" + (10/0));
		}catch(ArithmeticException e) {
			e.printStackTrace();
			System.out.println("除法运算异常");
		}

    如上所示,为tyr...catch格式的使用,对try方法中的异常进行捕获,并且通过e.printStackTrace()对异常信息进行的完整输出。如果不引入异常处理,默认情况下,会进行异常信息打印,同时将终止异常产生之后的代码,也就是程序在执行到异常时,同时程序的运行也会中断。

    为了程序在出现异常后,也能继续进行执行,必须引入异常处理语句来完善代码。

2.异常产生后的语句将不再执行。finally方法无论怎样最后都会执行,往往是在finally方法中进行一些资源释放的操作。如下所示为try...catch...finally。

		System.out.println("1.算法开始。");
		try {
			System.out.println("2.除法运算:" + (10/0));
			System.out.println("此语句不会输出,因为在此之前发生了异常");
		}catch(ArithmeticException a) {
			a.printStackTrace();
		}finally {
			System.out.println("finally最终语句!!!");
		}
		System.out.println("3.除法计算结束。");

输出结果:

1.算法开始。
java.lang.ArithmeticException: / by zero
finally最终语句!!!	at tryCatchTest.TryCatchTest01.main(TryCatchTest01.java:7)

3.除法计算结束。

3.通过try...catch...finally可以进行多种异常处理。如下所示,进行了数组越界异常、数字格式化异常、算数运算异常的异常判断。根据不同异常进行不同的异常信息输出。

System.out.println("1.开始计算");
		try {
			int x = Integer.parseInt(args[0]);
			int y = Integer.parseInt(args[1]);
			System.out.println("2.除法运算:" + (x/y));
			System.out.println("除法运算:" + (10/0));
			System.out.println("有异常我就不执行");
		}catch(ArrayIndexOutOfBoundsException e) {
			e.printStackTrace();
		}catch(NumberFormatException e) {
			e.printStackTrace();
		}catch(ArithmeticException e) {
			e.printStackTrace();
		}
		finally {
			System.out.println("不管怎样我都执行");
		}
		System.out.println("3.计算结束");

异常使用捕获顺序:范围小的异常要在范围大的异常之前进行处理。

throws:throws关键字主要在方法定义上使用,表示此方法中不进行异常的处理,而是交给被调用处处理。通俗的讲一个方法如果没有进行异常处理,并且在方法上进行了异常抛出,则在调用这个方法时再进行异常处理,或者可以继续异常抛出。

public class ThrowsTest {
	public static void main(String[] args) {
		try {
			System.out.println(MyMath.div(10, 0));
		}catch(Exception e){
			e.printStackTrace();	
		}
	}
}

class MyMath{
	public static int div(int x, int y) throws Exception {
		return x/y;
	}
}

throw:自定义异常处理。

        try {
			throw new Exception("自己定义的异常");
		}catch(Exception e) {
			e.printStackTrace();
		}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
try...catch是一种异常处理机制,在代码中可以用来捕获并处理可能发生的异常。它的基本格式是: try { // 可能会产生异常的代码 } catch (ExceptionType exceptionVariable) { // 异常处理代码 } 在try块中放置可能会抛出异常的代码,如果这部分代码发生异常,程序会立即跳转到与异常类型相匹配的catch块中执行异常处理代码。catch块中的代码用于处理异常,并采取相应的措施,比如打印错误信息、修复错误或者进行其他必要的操作。 try...catch的好处是,它可以保证即使有异常发生,程序也不会中断执行,而是会继续执行其他的代码。这对于确保程序的稳定性和可靠性非常重要。 在使用多个catch块处理异常时,需要注意一些规则。首先,多个catch块中的异常类型不能相同,否则会导致编译错误。其次,如果多个catch块中的异常类型存在继承关系,子类异常应该在上面的catch块中处理,父类异常应该在下面的catch块中处理。最后,当发生异常时,多个catch块只会执行一个,按照从上到下的顺序进行匹配。 与try...catch不同,throw是将异常抛给调用它的上一级代码。如果在代码中抛出异常,后续的代码将不会执行。throw通常用于在异常无法直接处理的情况下,将异常传递给调用者或其他地方进行处理。 综上所述,try...catch是一种用于捕获和处理异常的机制,可以保证程序在发生异常时不会中断执行,并提供了灵活的异常处理方式。throw则是将异常抛给上一级代码,以便进行进一步处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值