前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用正则表达式在VS中批量移除 try-catch

使用正则表达式在VS中批量移除 try-catch

原创
作者头像
用户7365393
修改2021-09-26 17:27:39
1.5K0
修改2021-09-26 17:27:39
举报
文章被收录于专栏:人生得意须尽欢

try-catch 意为捕获错误,一般在可能出错的地方使用(如调用外部函数或外部设备),以对错误进行正确的处理,并进行后续操作而不至于程序直接中断

但需要注意的是,当 try-catch 嵌套时,外部try-catch将无法对内部 try-catch 捕获的错误进行进一步的处理。因此在框架的使用中,我理解的是:编写人员仅需要对可以考虑到的,可能出错的地方进行处理即可,而没必要每个方法都使用 try-catch 包裹——对于未考虑到的意外情况,统统扔给全局的异常处理即可。这样便于统一的全局日志,也可在上帝的视角给出较为全面的错误堆栈信息(如什么请求引起的错误,输入的参数是什么等等)。

操作

现在项目中几乎所有的方法都被 try-catch 包裹,为了将既有的代码中的 try-catch 统一去除,我使用了如下的正则表达式在 Visual Studio 2019 中进行替换(为了保险起见,应逐个文件替换,替换后大致检查下,并使用 Ctrl + K, Ctrl + F 格式化代码)

代码语言:javascript
复制
try\s*?{\s+((.|\n)*?)\s+}\s+catch(.|\n)*?}

说明

需要注意的有以下几点:

  1. \s 表示各种空白字符,包括换行等,因此可以用来匹配try-catch“两端”代码中的空格
  2. 要匹配包括空格的所有字符,应该使用(.|\n),因为“.”号不包含换行符
  3. *? 表示尽可能少的匹配,+ 则表示尽可能多的匹配
  4. 在 Visual Studio 中使用 $1 $2 .....代表其中的分组(也有部分教程说是使用 \1 \2,可能是老版本的 VS,并没有试验)
  5. 可能有些 try-catch 的写法不同,仅保证对图示中的写法有效
  6. 经过评论区的提醒,并不适用于嵌套try-catch的情况(会将原来的逻辑肢解),并且对于正常的try-catch也一并替换了,使用时应当先预览再操作

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 操作
  • 说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档