请问 try catch可以重写吗

问题描述

我想在原有的trycatch基础之上封装一些自己的内容,请问可以封装或者重写trycatch吗

解决方案

解决方案二:
那叫嵌套如果原始的catch不抛出来,那你再套n层也是无效的
解决方案三:
trycatch可以重写吗
解决方案四:
你干嘛要重写trycatch呢?捕获异常后你把异常以你自己方式抛出去就行了,没必要重写啊?
解决方案五:
重写这个有何意义呢????
解决方案六:
我需要在catch中增加自己的逻辑
解决方案七:
引用5楼shangtongchao的回复:

我需要在catch中增加自己的逻辑

你的逻辑就已经有问题了
解决方案八:
不是重写,那叫异常封装,看下Entlib的Exception模块
解决方案九:
引用5楼shangtongchao的回复:

我需要在catch中增加自己的逻辑

你写一个统一提交的方法,在这个方法里面进行trycatch,这样的话不就变现实现所有的trycatch都能加入你自己的东西了嘛
解决方案十:
我想在出现异常后自动输出日志信息,也就是在catch中进行信息输出,信息输出模块已经写好,现在需要在每个catch中手动添加,如果可以对trycatch进行一定的修改实现自动输出
解决方案十一:
我理解楼主是想要直接重写try-catch关键字咯,我也很想知道可不可以,所以我点进来看了,结果...我也想如果可以自己重写的话,底层就可以统一将catch到的信息统一写到一个地方,再抛给上层去处理。如mytry{}mycatch(Exceptionex){//此处就不需要在调用写日志之类的}而现在我所知道的异常处理方式都是如下面这样:try{}catch(Exceptionex){LogHelper.Log(ex);//每个异常地方都需要写这句话,重复工作量,还会漏了写。//其他异常处理逻辑}
解决方案十二:
对啊,不只信息输出,还有一些其他的通用操作都可以封装进来,而不必每次都写一堆重复的代码
解决方案十三:
大神快来啊啊
解决方案十四:
引用12楼shangtongchao的回复:

大神快来啊啊

Application.ThreadException+=newThreadExceptionEventHandler(Application_ThreadException);//捕获系统所产生的异常。privatestaticvoidApplication_ThreadException(objectsender,ThreadExceptionEventArgse){try{//仅记录系统异常if(e.Exception.GetType().Name!=typeof(CustomException).Name)LogUserOperate.Write(e.Exception);//写入异常日志Msg.ShowException(e.Exception);//处理系统异常}catch(Exceptionex){Msg.ShowError("Application_ThreadException:rn"+ex.Message);}}
解决方案十五:
没有这东西。。
解决方案:
可以写个方法,在catch部分调用这个方法
解决方案:
引用13楼qq_21045521的回复:

Quote: 引用12楼shangtongchao的回复:
大神快来啊啊

Application.ThreadException+=newThreadExceptionEventHandler(Application_ThreadException);//捕获系统所产生的异常。privatestaticvoidApplication_ThreadException(objectsender,ThreadExceptionEventArgse){try{//仅记录系统异常if(e.Exception.GetType().Name!=typeof(CustomException).Name)LogUserOperate.Write(e.Exception);//写入异常日志Msg.ShowException(e.Exception);//处理系统异常}catch(Exceptionex){Msg.ShowError("Application_ThreadException:rn"+ex.Message);}}

这个方式只能是辅助处理未被处理的异常。如果存在逻辑是(实际开发中也有很多这样的逻辑),捕获异常后还会有后续处理的就不适用了。如:intresult=1;try{...result=2;}catch(Exceptionex){result=3;}if(result==1){}elseif(result==2){}elseif(result==3){}
解决方案:
引用16楼Yokeqi的回复:

Quote: 引用13楼qq_21045521的回复:
Quote: 引用12楼shangtongchao的回复:
大神快来啊啊

Application.ThreadException+=newThreadExceptionEventHandler(Application_ThreadException);//捕获系统所产生的异常。privatestaticvoidApplication_ThreadException(objectsender,ThreadExceptionEventArgse){try{//仅记录系统异常if(e.Exception.GetType().Name!=typeof(CustomException).Name)LogUserOperate.Write(e.Exception);//写入异常日志Msg.ShowException(e.Exception);//处理系统异常}catch(Exceptionex){Msg.ShowError("Application_ThreadException:rn"+ex.Message);}}

这个方式只能是辅助处理未被处理的异常。如果存在逻辑是(实际开发中也有很多这样的逻辑),捕获异常后还会有后续处理的就不适用了。如:intresult=1;try{...result=2;}catch(Exceptionex){result=3;}if(result==1){}elseif(result==2){}elseif(result==3){}

已经处理的异常你还记录了干嘛
解决方案:
重写应该不可能了,机制如此
解决方案:
关键字怎么重写。。。
解决方案:
你的思路有问题。我对你的需求的理解是,你想在很多业务代码中用trycatch。1、首先,这就不是正确的用法。你应该利用异常的机制,也就是它是逐层抛出的,你只需要在顶层来统一处理异常即可,不需要到处写trycatch2、如果你真需要在某些地方写trycatch,又想重用某些代码,那么用委托就可以简单实现:///<summary>///执行并捕捉线程中的异常///</summary>///<paramname="fun"></param>///<paramname="isSilent"></param>///<returns>1成功-1失败</returns>publicintThreadExceptionCatch(ThreadExceptionCatchCodefun,boolisSilent=false){try{fun();return1;}catch(Exceptionex){if(!isSilent){//异常处理Resolve(ex,"CustomThreadException",true);}return-1;}}

解决方案:
我之前的帖子有问到类似的问题。http://bbs.csdn.net/topics/390945182最终解决方案就是用AOP。可以看下这篇博客http://blog.csdn.net/yanghua_kobe/article/details/6917228
解决方案:
请用AppDomain.FirstChanceExceptionEvent,具体的看微软给的示例,我想这一定就是你想要的https://msdn.microsoft.com/en-us/library/system.appdomain.firstchanceexception.aspx
解决方案:
引用21楼ducker3590的回复:

我之前的帖子有问到类似的问题。http://bbs.csdn.net/topics/390945182最终解决方案就是用AOP。可以看下这篇博客http://blog.csdn.net/yanghua_kobe/article/details/6917228

AOP是需要改源码的,而楼主这种功能只有Hook才能做到,不过很幸运,微软竟然给了这样的Hook事件,那就是AppDomain.FirstChanceExceptionEvent

时间: 2024-09-22 04:31:20

请问 try catch可以重写吗的相关文章

求IIS7.5 url重写的规则,真正的高手来

问题描述 请问如何学习url重写的规则.我在IIS里的url重写里"添加规则",正则不会写,不知道如何写.求教程 解决方案 解决方案二:你到底是要正则的还是Rewrite的?正则的话看完这个大多数的正则可以写出来了解决方案三:我需要rewrite的

重写-问一个关于override的问题

问题描述 问一个关于override的问题 问一个关于override的问题,小弟基础不是很强悍,望见谅,请问在android中重写了父类接口中的方法后,子类中重写的该方法时何时会被调用? 简单说就是下面的代码何时会被调用到,如何调用 @override public void check{ ............ } 解决方案 子类内部调用 check.外部通过子类变量调用 check,都是调用子类的重写方法. 如果把子类赋给一个父类变量,通过父类变量调用 check,都变成调用父类的方法了

java-Hibernate配置组件映射出错!可能是因为namingStrategy,求解答!

问题描述 Hibernate配置组件映射出错!可能是因为namingStrategy,求解答! 这是我的配置 <hibernate-mapping package="com.test.domain" > <class name="Company" table="Company" > <id name="id" column="ID" > <generator cla

android中如何让Gallery竖直显示?

问题描述 如题,本人有个项目,想用Gallery竖直显示,在网上找了很多,也没找到相关的方法,请问能实现吗? 问题补充:请问,该如何重写呢?能不能提供一个思路?renpeng301 写道 解决方案 这个得读Gallery的源码啊,这个可能得改动的比较大,而且能不能达到你要的效果,还是未知数,因为好像还没人这样改造.其实 你可以用替代的方案去实现你要的效果·· 美化下LISTVIEW应该可以达到你的目的解决方案二:布局中只显示一个图片就行了.一行只显示一个不就完了.解决方案三:重写Gallery的

Android扫描二维码时出现用户禁止权限报错问题解决办法

Android扫描二维码时出现用户禁止权限报错问题解决办法 当我用ZBarDecoder.jar写了一个扫描二维码的程序,确实实现了扫描功能.组长说如果用户禁止调用摄像头,那程序也不能崩溃.结果我一运行就崩溃了.在网上自己找了找,可以这样解决. try { mCameraManager.openDriver(); } catch (Exception e) { //当用户手动禁止摄像头权限时,防止系统崩溃 AlertDialog.Builder builder=new AlertDialog.B

java 继承 多态-请问下这段代码正确的原因,为什么父类可以调用抽象方法,执行的是子类重写的方法

问题描述 请问下这段代码正确的原因,为什么父类可以调用抽象方法,执行的是子类重写的方法 public class TestA { public static void main(String[] args) { TestA a = new TestA(); a.start(); } public void start(){ B b = new B(); b.funA(); } public abstract class A { public void funA(){ System.out.pri

请问如何重写自定义变量中一个属性的操作符?

问题描述 可能这问题比较偏门.之前旧的程序中自定义了一个类型叫hole,有一个属性是id,类型为int.现在因为业务的扩展需要改为guid.为了不影响系统现在的使用,我增加了一个新字段叫idnew,类型为guid.之前调用id的代码非常多,主要用于判断id是否相等.我想请问下有没有可能重写id的==运算符.当idnew有值时,使用idnew来进行比较.而idnew为null或newguid时,仍旧使用id进行比较(为了方便新旧两套系统的切换,可能需要同时使用一段时间这两个不同类型的id)谢谢 解

C# 请问如何把asp.net生成shtml文件(急,在线等)

问题描述 C#请问如何把asp.net生成shtml文件 解决方案 解决方案二:http://blog.csdn.net/jyk/archive/2006/03/07/617376.aspxhttp://www.cnblogs.com/T_98Dsky/archive/2005/08/25/222992.html解决方案三:http://blog.csdn.net/chestnuts/archive/2006/12/08/1435061.aspx解决方案四:请问您的意思是生成一个纯的静态页还是使

Java基础-19总结IO流,异常try…catch,throws,File类

1:异常(理解) (1)程序出现的不正常的情况. (2)异常的体系 Throwable |--Error 严重问题,我们不处理. |--Exception |--RuntimeException 运行期异常,我们需要修正代码 |--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过 package cn.itcast_01; /*  * 异常:程序出现了不正常的情况.  *   * 举例:今天天气很好,班长出去旅游.骑着自行车,去山里面呼吸新鲜空气.  *  问题1: