OutOfMemoryException陷阱/事件(在try-catch旁边)

m1o*_*1o2 0 .net c# exception out-of-memory

我刚刚开始研究现有的大项目.其中一些包含遗留代码.
我被要求编写一个组件(将在同一个进程中运行),该组件应在发生致命错误或发生情况时发出警报并重新启动服务器.

例如,当抛出OutOfMemoryException时,我应该警告客户端,然后重新启动服务器.问题是,搜索所有现有的Try-catch块然后编辑并向其catch块添加新代码将是困难和耗时的.更重要的是,新的程序员可以添加一个新的try-catch块,如果捕获了OutOfMemoryException则忘记警告.

您是否知道如何监视/侦听OutOfMemoryException(以及类似的异常),而无需查找和编辑(并可能添加)每个现有和未来的Try-catch块?

我正在使用.Net 4.

编辑:

  1. OutOfMemoryException只是一个例子.
  2. 可能存在捕获OutOfMemoryException的遗留代码,将消息打印到日志然后什么都不做.

Sim*_*ead 5

这正是你应该修复的原因OutOfMemoryException..而不是试图抓住它.它可以随时随地抛出.

除了..这是一个内存不足的例外..你有什么保证,这个进程有足够的内存来处理它?你没有.