Exception的try用法

5 篇文章 0 订阅

Exception的try用法

就在前一两天刚接触并学会了有关Map的一些用法,
搞明白了map.add、键值、遍历列表数据等等
结果今天就在这基础上又遇到了问题,先上代码
private HttpClientParam unPassiveScan(Map<String,Object> map){
        Map<String,String> paraMap = new HashMap<String,String>();
        try{
            Map<String,String> unParam = getSysParam("QRCODE_UN");
            //getSysParam跳转获取数据库参数信息         
            paraMap.put("version","1.0.0")//版本号
            paraMap.put("signature","")//签名
            String termSnNo = null;
            if(StringUtils.isEmpty((String) map.get("termSnNo"))){
                //com.icss.instrutry.product.nap.posp.buss.unit.StringUtils.isEmpty判断字符串是否为空
                termSnNo = DEFAULT_TERM_SN_NO;
            }else {
                termSnNo = map.get("termSnNo").toString();
            }           
        } catch (Exception e) {
            logger.error("报文异常:",e);
        }
        return httpClientParam;
    }

这里的
Map<String,String> paraMap = new HashMap<String,String>();

new了之后按理来说是可以直接进行".put"操作的,其他的都没有问题却在这里面用了一个try…catch语法
这里重点讲try的两种用法,Exception后面再细说

try…catch…finally:
给出的结构:

try{
....
} catch(Exception e) {
....
} finally{
....
}

①这三个执行顺序:先执行try里面的语句,如果抛出异常则执行catch语句否则执行finally语句,对于finally语句无论前面执行情况如何都会执行

②finally中最好不要写return语句,因为这样会替换掉try或者是catch中的return值,因为return出去的值不会再发生改变所以在finally里无需再给catch中return的变量赋值
*******当然对于实际情况不一定非要写finally

try…catch…catch
给出的结构:

	try {
	    A(0);
	} catch (ClassNotFoundException e) {
	    e.printStackTrace();
	} catch (IOException e) {
	    e.printStackTrace();
	}

这种写法不是说让同一语法catch两次甚至更多次,对于异常都是继承至Exception,而catch中的实例对象不存在所谓的继承关系,是并行的,所以当第一个catch捕获到了异常这个异常可能就包含了后面所有的异常,后面的catch就没有意义。

*******所以文章开头代码中的try…catch意思就是执行try中的代码,如果没有问题则跳过catch继续往下走,否则执行catch抛出异常报错。

在 C++ ,`try-catch` 和 `try-except`(通常指的是 `try-catch` 的不同表述)是用来处理异常的一种机制,它们的主要作用是在程序运行过程遇到错误时提供一种控制流的转移方式,以便于程序能够优雅地处理异常,而不是直接崩溃。 1. `try-catch` 语句: - `try` 块包含了可能会抛出异常的代码。如果这些代码的某个函数或操作引发了一个异常,程序将立即停止在 `try` 块内的执行,并寻找匹配的 `catch` 子句。 - `catch` 子句定义了对特定异常类型的处理。当对应的异常被抛出并被捕获时,`catch` 块的代码将被执行,这样可以修复错误或者清理资源,然后继续程序的正常流程。 2. `try-except` 可能是你想表达的是 `try-catch` 的另一种说法,但这个语法并不标准,通常是其他语言(如 Python)的用法。在 C++ ,它应该理解为与 `try-catch` 等价的概念。 这两个结构的主要区别在于: - `try-catch` 是 C++ 官方推荐的异常处理方式,具有明确的异常类型匹配,可以针对不同类型的异常采取不同的处理策略。 - 如果你提到的 `try-except` 是指 C++ 的异常处理,那么它实际上就是指 `try-catch`,没有额外的区别。 相关问题: 1. 在 C++ ,`try-catch` 用于处理哪类错误? 2. `catch` 子句可以捕获哪些类型的异常? 3. 如何避免 `try` 块的代码引发未处理的异常?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值