有没有办法在父类中控制子类的异常处理

dlxu 2007-07-19 01:10:17
比如有两个类
class BaseClass
{
public void BaseMethod()
{

}

}

class SubClass:BaseClass
{
public void SubMethod1()
{

}

public void SubMethod2()
{
}
}

是父类和子类的关系,现在如果调用父类的BaseMethod方法的时候,系统会有一个机制去调用子类的方法。那个机制在一个既有的dll中,我们无法修改,现在想在子类的每个方法Catch异常,又不想在每个子类方法中来Catch,就想在父类中的方法做,就类似于Java中的cglib那样,问大家,应该怎么做呢?
...全文
400 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Aallonlin 2007-07-19
  • 打赏
  • 举报
回复
up.
北京的雾霾天 2007-07-19
  • 打赏
  • 举报
回复
要处理的异常的方法都在基类中声明成可被子类重写的。且它们的调用都在基类里,这样在基的调用重写的方法时就可以处理在子类里发生的异常了。例如:

class BaseClass
{
public void BaseMethod()
{
try
{
SubMethod1();
SubMethod2();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
public virtual void SubMethod1(){}
public virtual void SubMethod2(){}
}

class SubClass : BaseClass
{
public override void SubMethod1()
{
throw new Exception("SubMethod1");
}

public override void SubMethod2()
{
throw new Exception("SubMethod2");
}
}


//调用子类的方法
SubClass b = new SubClass();
b.BaseMethod();


BearRui 2007-07-19
  • 打赏
  • 举报
回复
系统会有一个机制去调用子类的方法。
-----------
这个机制是在BaseMethod方法中调用吗,如果是直接catch BaseMethod方法就行了,如果不是可以
catch 哪个机制。如果机制也catch不到就只能考虑系统的全局异常的扑获了。

net有地方可以获取整个系统任何地方抛出的异常!!!

交流母线型风光储氢耦合系统多单元协同调控与负荷适配特性仿真研究(Simulink仿真实现)内容概要:本文围绕交流母线型风光储氢耦合系统,研究其多单元协同调控与负荷适配特性,重点通过Simulink仿真平台构建系统模型,实现风力发电、光伏发电、储能系统及质子交换膜(PEM)电解水制氢系统在共交流母线结构下的协调运行。研究涵盖系统整体架构设计、各单元动态建模、能量管理策略制定以及多源协同控制逻辑,旨在优化系统能量流动,提升可再生能源消纳能力,并实现对负荷需求的精准响应。仿真结果验证了所提协同调控策略在提高系统稳定性、降低弃风弃光率和增强负荷适配性方面的有效性。; 适合人群:具备电力系统、新能源发电、综合能源系统等相关背景,熟悉Simulink仿真工具的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究高比例可再生能源接入下的多能互补与协同控制机制;②掌握风光储氢耦合系统的建模与仿真方法;③探索氢能作为长时储能手段在电力系统的应用潜力与调控策略。; 阅读建议:在学习过程应重点关注系统架构设计与控制逻辑的实现细节,结合Simulink模型深入理解各单元的交互关系,并通过调整参数和工况进行仿真验证,以加深对多单元协同调控机理的理解。

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧