c# - System.Overflow 异常 - int32 太大或太小

标签 c# overflow

我需要一些建议。

我有在夜间运行的 Windows 服务。在我的开发环境中,它无一异常(exception)地运行,但是当我在“安装在其他机器上”运行它时,当我早上来的时候,我受到了 System.Overflow 异常的欢迎,它说我已经将 int32 设置为太大或太小的值。

我仔细梳理了该服务的 c# 代码,并且我对所有内容都有 try/catch 语句,它们应该捕获任何错误并将其写入日志,而不会因此溢出异常而完全停止我的服务。但它仍然会发生并停止服务。

对于如何查明导致此类错误的原因的任何概念性建议,我将不胜感激。

最佳答案

在整个代码中添加 try/catch block 的问题是很容易遗漏某个地方,因此不会记录异常。一种更可靠的方法是使用值 AppDomain.UnhandledException。这将针对当前 AppDomain 中未处理的任何异常触发。您可以 Hook 它以写入您的日志文件,并希望更好地了解错误的来源

AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;

...

void OnUnhandledException(object sender, UnhandledExceptionEventArgs e) {
 // Log the exception here
}

关于c# - System.Overflow 异常 - int32 太大或太小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2567211/

相关文章:

javascript - 使用溢出元素时不考虑 CSS 高度属性值

overflow - 在外部 div 上使用 CSS max-height 强制在内部 div 上滚动

c - 为什么使用双变量时不会溢出?

c# - 如何在arraylist中找到没有重复的值

c# - 使用 NPPExec 脚本从 Notepad++ 中使用 csc.exe 编译 C#

c# - 如何将泛型类限制为某些类型(包括 native 数据类型)

无法覆盖 gdb 之外的返回地址

javascript - 设置overflow-y可见,而overflow-x为auto,以便内容可以垂直溢出父容器

c# - 或,与运算符

c# - 在 C# 中重铸为基类