不要把异常当做业务逻辑,这性能可能你无法承受
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不要把异常当做业务逻辑,这性能可能你无法承受相关的知识,希望对你有一定的参考价值。
一:背景
1. 讲故事
在项目中摸爬滚打几年,应该或多或少的见过有人把异常当做业务逻辑处理的情况(┬_┬),比如说判断一个数字是否为整数,就想当然的用try catch
包起来,再进行 int.Parse
,如果抛异常就说明不是整数,简单粗暴,也不需要写正则或者其他逻辑,再比如一个字符串强制转化为Enum,直接用Enum.Parse
,可能是因为对异常的开销不是特别了解,这种不好的使用习惯也许被官方发现了,后续给我们补了很多的Try前缀的方法,比如:int.TryParse
, Enum.TryParse
, dict.TryGetValue
,用代码展示如下:
//原始写法
var num = int.Parse("1");
//使用try方式
var result = 0;
var b = int.TryParse("1", out result);
用Try系列方法没毛病,但这写法让人吐槽,还要单独定义result变量,没撤,官方还得靠我们这些开发者给他们发扬光大
以上是关于不要把异常当做业务逻辑,这性能可能你无法承受的主要内容,如果未能解决你的问题,请参考以下文章