首页 > 其他分享 >把异常当做业务逻辑?那你可能无法承受

把异常当做业务逻辑?那你可能无法承受

时间:2024-07-02 12:31:08浏览次数:12  
标签:当做 逻辑 00007fff 承受 System calling 00000000 MethodDesc clr

一:背景

1. 讲故事

在项目中摸爬滚打几年,应该或多或少的见过有人把异常当做业务逻辑处理的情况(┬_┬),比如说判断一个数字是否为整数,就想当然的用try catch包起来,再进行 int.Parse,如果抛异常就说明不是整数,简单粗暴,也不需要写正则或者其他逻辑,再比如一个字符串强制转化为Enum,直接用Enum.Parse,可能是因为对异常的开销不是特别了解,这种不好的使用习惯也许被官方发现了,后续给我们补了很多的Try前缀的方法,比如:int.TryParse , Enum.TryParsedict.TryGetValue ,用代码展示如下:

            //原始写法
            var num = int.Parse("1");

            //使用try方式
            var result = 0;
            var b = int.TryParse("1", out result);

用Try系列方法没毛病,但这写法让人吐槽,还要单独定义result变量,没撤,官方还得靠我们这些开发者给他们发扬光大

标签:当做,逻辑,00007fff,承受,System,calling,00000000,MethodDesc,clr
From: https://blog.csdn.net/s44359487yad/article/details/140123501

相关文章

  • 记一次vue脚手架打包生成的js里面变量逻辑错误的解决
    问题背景开发环境调用threejs,实现3d功能组件,开发环境测试正常,打包部署到现场后异常。浏览器控制台,报变量i和r,没有定义下图是点击报错地方打开的控制台截图。可以看到有ir变量。解决思路开发调试没有问题,那肯定是打包之后命名的变量存在不正确的逻辑了。肯定不能修改dis......
  • RAG与LLM原理及实践(6)--- Chroma collection及存储逻辑分析
     背景在chromavectordb的世界中,除了对query的理解,另外就是需要深入理解chroma的运行模式,chroma运行时,提供了 local模式,server-client模式,这些在应用中固然重要,但从实现原理上说,其实就是通过http服务,在固定端口如11344上请求数据。但是在这之前,需要深入了解并理解coll......
  • 逻辑操作符
    目录&&---逻辑与操作符||---逻辑或操作符 &&---逻辑与操作符逻辑与操作符有并且的意思,一般用于判断语句中逻辑与操作符运行规则是都要为真,才会继续执行或计算360笔试题:有关前置++(--),后置++(--)的知识请见:单目操作符-CSDN博客#include<stdio.h>intmain(){ ......
  • HDLBits练习Shift18 Verilog逻辑右移和算数右移的区别
    算术右移时,移入的是移位寄存器中数字(本例中为q[63])的符号位,而不是逻辑右移时的零。右移n位,即加入n位符号位。即若符号位为1,在左边补1;若符号位为0,就补0。算术右移的另一种思路是,它假定被移位的数字是带符号的,并保留符号,因此算术右移是右移n位将带符号的数字除以2的n次幂。......
  • 数据结构/排序/堆排序 --- 逻辑讲解、代码实现、图形展示
    一、总体逻辑:    1.写一个交换的函数swap备用    2.写一个维护堆的性质的函数heapify备用    3.数组-> 堆(不明白的别急,后面会详细解释)    4.维护整个堆(看不懂别急别急别急)    5.堆顶和堆底的最后一个元素互换(不明......
  • 创新实训(八)——题目相关的逻辑处理解释
    题目部分题目是整个OJ系统的练习基础,无论是平时学生的练习还是比赛时的准备用题,题目系统在OJ中都是至关重要的。在controllers文件夹下,负责题目部分的代码文件分别为:problem_set.php,problem.php,problem_statistics.php,problem_data_manage.php,problem_statement_manage.php,p......
  • 创新实训(七)——比赛(Contest)内部逻辑处理
    比赛部分比赛部分包含比赛列表显示、单个比赛内部信息显示、比赛管理、比赛人员以及比赛报名页面这五个代码主要代码文件。此外在内部逻辑处理时还使用了model和lib下的部分配置代码比赛列表比赛列表包含“正在进行或即将到来的比赛”和“已结束的比赛”这两部分具体代码实现......
  • 数据宽度,逻辑运算
    一、数据宽度数据宽度指的是在计算机中表示数据时所占用的内存空间大小,它决定了数据在内存中的表示范围和精度。数据宽度通常以位(bit)或字节(Byte)为单位来衡量,不同的数据类型有不同的宽度要求。在计算机科学中,数据宽度是一个基本概念,它涉及到如何有效地在内存中存储和处理数据。位......
  • caddy 模块(module) caddyhttp Start启动逻辑分析
     ./modules/caddyhttp/app.gofunc(app*App)Start()error{//xx} Start方法属于一个自定义的App结构体,用于启动应用程序中的多个HTTP服务器实例。下面是对该方法的主要逻辑和关键步骤的详细分析:1.日志设置:首先,通过zap.NewStdLogAt创建一个兼容......
  • 【初阶数据结构】深入解析带头双向循环链表:探索底层逻辑
    ......