问题描述
try{returntrue;}catch(Exceptionex){errMsg="Error"+ex.HResult+","+ex.Message;returnfalse;}我每一个方法,都有这样一个捕获异常的,但是有20多个方法,每个都要写一遍啊?有没有什么方法可以简化一下,只写一遍呢。
解决方案
解决方案二:
这样将异常屏蔽,返回false真的好吗?
解决方案三:
引用1楼starfd的回复:
这样将异常屏蔽,返回false真的好吗?
这是一个class,false代表出错,true代表正确,返回的数据用out参数输出。
解决方案四:
过程都不一样,想要简化,就要依靠Func与Action做一个特殊的函数,将现在的过程委托处理
解决方案五:
你也太懒了吧
解决方案六:
引用3楼fei2yun的回复:
过程都不一样,想要简化,就要依靠Func与Action做一个特殊的函数,将现在的过程委托处理
不行啊,返回值有些有两个以上的。
解决方案七:
引用4楼shingoscar的回复:
你也太懒了吧
因为写法都是一样的,一遍一遍的写让人感觉不专业,想着怎么装下B
解决方案八:
百度了下说使用AppDomain.CurrentDomain.UnhandledException+=CurrentDomain_UnhandledException;但是进不去啊,照样在出错的地方抛异常。
解决方案九:
很简单。你把底层的这些try都删了,然后在顶层codebehind加一个通用方法。ProtectedOverridesSubOnError(ByValeAsEventArgs)
解决方案十:
引用6楼plryinbwzj1的回复:
Quote: 引用4楼shingoscar的回复:
你也太懒了吧因为写法都是一样的,一遍一遍的写让人感觉不专业,想着怎么装下B
什么叫写法都一样?if/for/while...那个写法不是一样的?
解决方案十一:
引用4楼shingoscar的回复:
你也太懒了吧
不是他太懒,而是在delphi时,就有这种应用方法我也想过这样做,以免程序在出错误时,非正常常退出,对客户应用不好。
解决方案十二:
引用10楼oysy的回复:
Quote: 引用4楼shingoscar的回复:
你也太懒了吧不是他太懒,而是在delphi时,就有这种应用方法我也想过这样做,以免程序在出错误时,非正常常退出,对客户应用不好。
delphi是怎么样的?
解决方案十三:
找到了,楼主看这里
解决方案十四:
我已经测试了,成功!可以全局处理异常,就像很多网游一样的处理方式
解决方案十五:
我用他的方法,只用了下面一句,即可提示privatevoidbutton1_Click(objectsender,EventArgse){inta=Int16.Parse("a");}
但只能编译后,直接执行exe程序,才有提示,不能是调试模式。
解决方案:
这是我用的一个方法,传入匿名方法,对返回值稍加修改即可///<summary>///执行方法,有错误弹出提示///</summary>///<paramname="fm"></param>///<paramname="mi"></param>internalstaticvoidTryCatch(Formfm,MethodInvokermi){if(fm.InvokeRequired){fm.Invoke(newAction<Form,MethodInvoker>(TryCatch),fm,mi);}else{try{mi();}catch(Exceptionex){stringmsg=string.Format("{0}",ex.Message);MessageBox.Show(fm,msg);}}}