如何避免异常捕获.NET中的复制粘贴
发布时间:2020-12-16 04:13:10 所属栏目:asp.Net 来源:网络整理
导读:使用.NET框架我有一个带有一组方法的服务,这些方法可以生成几种类型的异常:MyException2,MyExc1,Exception …为了为所有方法提供适当的工作,每个方法都包含以下部分: [WebMethod]void Method1(...){ try { ... required functionality } catch(MyException
使用.NET框架我有一个带有一组方法的服务,这些方法可以生成几种类型的异常:MyException2,MyExc1,Exception …为了为所有方法提供适当的工作,每个方法都包含以下部分:
[WebMethod] void Method1(...) { try { ... required functionality } catch(MyException2 exc) { ... process exception of MyException2 type } catch(MyExc1 exc) { ... process exception of MyExc1 type } catch(Exception exc) { ... process exception of Exception type } ... process and return result if necessary } 在EACH服务方法中具有完全相同的东西(每个方法具有不同的参数集)与处理功能完全相同的异常是非常无聊的… 有没有可能“分组”这些捕获部分并只使用一行(类似于C宏)?可能.NET 4.0中的新内容与此主题有关吗? 谢谢. 附:欢迎任何想法. 解决方法
如果异常处理在所有方法中完全相同,您可以执行以下操作:
void CallService(Action method) { try { // Execute method method(); } catch(MyException2 exc) { ... process exception of MyException2 type } catch(MyExc1 exc) { ... process exception of MyExc1 type } catch(Exception exc) { ... process exception of Exception type } } 然后,您可以重写您的客户端代码: int i = 3; string arg = "Foo"; this.CallService( () => this.Method1(i) ); this.CallService( () => this.Method2(arg,5) ); 这允许您的Method1和Method2方法简单: void Method1(int arg) { // Leave out exception handling here... ... required functionality ... process and return result if necessary } void Method2(string stringArg,int intArg) { // Leave out exception handling here... ... required functionality ... process and return result if necessary } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Asp.net – Orkut
- 在ASP.NET页面上显示XML
- 在HiddenField asp.net中存储一个字符串数组
- asp.net-core – 将命名空间添加到ASP.NET MVC 6中的所有视
- asp.net-mvc – 使用数据注释进行自定义验证
- asp.net-mvc – CORS在使用OWIN认证的web api中不起作用
- asp.net – IE10中的LinkBut??tons不执行回发
- ASP.net Core中正确的标记用法是什么? TagHelpers与HTML H
- asp.net – Linux或OS X中的Web API 2.1
- asp.net-mvc – 添加.net 4.5对Asp.net vNext项目的引用
推荐文章
站长推荐
- asp.net – WebResource.axd
- 样本代码/代码项目的最佳ASP.NET网站[已关闭]
- asp.net-mvc – 已经使用相同的参数类型定义了一
- asp.net-mvc – 带数据注释的KendoUI网格默认值
- asp.net-mvc – 可以使用ASP.Net MVC Razor视图来
- asp.net-mvc – ASP.NET MVC从数据库加载Razor视
- iis-7 – ASP.NET请求队列优先级
- "<a href='../目录" +变量+ 
- 使用RestSharp发布GZip内容
- [ASP NET MVC] 使用ReportViewer执行用户端报表定
热点阅读