trycatchthrow用法,try catch throw

http://www.itjxue.com  2023-01-18 09:32  来源:未知  点击次数: 

try-catch和throw,throws的区别

1.throw

throw 就是抛出一个异常,并获取这个异常的引用,这个异常会被抛到外部的环境,由外部环境进行处理

class A{

public void func() throws Exception{

throw new Exception();

}

}

这里抛出了一个Exception,Exception是throwable的子类,是所有异常的基类。与此同时,throwable还有另一个子类,也就是Error。

这里会把Exception这个引用抛到外部环境中去处理。

throw跟try...catch...finally的对比:

public class ZeroTest {

public static void main(String[] args) {

try{

int i = 100/ 0;

System.out.print(i);

}catch(Exception e){

System.out.print(1);

throw new RuntimeException();

}finally{

System.out.print(2);

}

System.out.print(3);

}

}

try catch是直接处理,处理完成之后程序继续往下执行,throw则是将异常抛给它的上一级处理,程序便不往下执行了。

本题的catch语句块里面,打印完1之后,又抛出了一个RuntimeException,程序并没有处理它,而是直接抛出,

因此执行完finally语句块之后,程序终止了

C++里try,catch,throw是什么意思,怎么用?

try里面的是一个程序块,你把可能发生异常的程序块放到try中执行,

如果真发生异常的话,try就把这个异常抛出,

这个抛出过程由throw进行,抛出异常后,

由紧跟在try块后的

catch

接收并解决这个异常

c# 异常,try catch throw

try..catch..throw是C#里面处理异常的机制;

我们在编码时,无论是在业务逻辑处理还是数理运算,都有可能有想不到的情况发生,比如在做基本算数运算时,可能出现溢出或者除零等问题,那么这就需要一种机制来处理这种异常,增强软件的性能和稳定,try catch throw 就是用来处理异常的。

try 代码块中一般存放业务处理逻辑代码,比如尝试打开数据库连接时、处理业务运算时等,放在try内部的所有代码,一旦出现未知的异常情况,Try代码块中的代码便终止运行,而是跳到catch中,如果不放在Try内部,一旦出现异常,程序将面临崩溃。

catch代码块和try匹配出现,用于处理try块中出现的异常。

try后可以有多个catch,根据catch(异常类型)中的异常类型执行最匹配的一个;

try后可以不跟catch,但必须有跟着finally(try后有catch时也可以跟着finally)

finally:无论代码正常执行还是出现异常,该代码块中的代码都肯定执行,所以可以放一些关闭数据库连接或者释放内存的代码在这里;

throw:将异常抛出到最近的上级catch块中,比如:

try{

try{}

catch{

throw...;//异常会被抛出到A代码块处进行处理

}

}catch{

//A代码块

}

什么时候用try呢?try使用的多了或许能有效的避免系统因异常而崩溃,但是过多的使用try会降低系统性能,给你介绍一下try在程序运行时的大体过程:

当程序运行到try起点时,会在栈中存放一个地址记录入口点,当try执行完毕后要找到入口点,所以是有开销的。

给你个建议:

设计到运算、逻辑处理、业务运算等操作时,一定使用异常处理,定义或实例化变量时不建议使用;

互相学习 !

Dy

(责任编辑:IT教学网)

更多