记一次 .NET 某企业审批系统 崩溃分析

💡 原文中文,约9300字,阅读约需23分钟。
📝

内容提要

文章分析了一次程序崩溃的原因,发现是内存不足导致的`OutOfMemoryException`,并在全局异常处理中抛出`TargetInvocationException`。建议通过修改图标尺寸来避免双重异常。

🎯

关键要点

  • 文章分析了一次程序崩溃的原因,发现是内存不足导致的OutOfMemoryException。
  • 全局异常处理中抛出了TargetInvocationException,导致程序崩溃。
  • 崩溃的根本原因是GdipCreateFromHDC方法返回num=3,手动抛出了OutOfMemoryException。
  • 在全局异常处理时,初始化frmErrorMessage时又抛出了Win32Exception。
  • 建议通过设置多尺寸的图标图片来避免双重异常的发生。

延伸问答

导致程序崩溃的主要原因是什么?

程序崩溃的主要原因是内存不足,导致抛出了OutOfMemoryException。

全局异常处理中抛出的异常是什么?

全局异常处理中抛出了TargetInvocationException。

如何避免程序崩溃中的双重异常?

建议通过设置多尺寸的图标图片来避免双重异常的发生。

GdipCreateFromHDC方法返回的num值代表什么?

GdipCreateFromHDC方法返回的num=3,表示内存不足。

在崩溃分析中使用了哪些工具?

使用了windbg的!analyze -v命令来观察崩溃信息。

崩溃的根本原因是什么?

崩溃的根本原因是GdipCreateFromHDC方法抛出了OutOfMemoryException。

➡️

继续阅读