我是 C# 编程的初学者。我在使用表单构建应用程序时遇到了小问题。我会尽力在我的能力和经验范围内适本地解释它。当我尝试处理由在我的 Form1 中实例化的 Class1 引起的异常时出现问题。假设我在 Class1 中有函数“public int Calc(int a, int b)”。在 Form1 中,我实例化了此类以调用其“Calc”函数。如果我想发出错误消息(例如:除以零),我必须将函数调用包装到 try/catch 元素中:
//表格1:
Class1 C1 = new Class1();
int a = 5;
int b = 0;
int c = 0;
try{
c = C1.Calc(a,b)
}
catch(DivideByZeroException e)
{
// some error handling code
}
...我认为这个示例不是正确的 OOP 技术,所以我不得不决定将 try/catch 元素直接放入 Class1:
//类1:
public int Calc(int a, int b)
{
int c = 0;
try{
c = a/b;
}
catch(DivideByZeroException e)
{
// .........
}
return c;
}
...问题是,我怎样才能将消息 (DivideByZeroException e) 放入我的 Form1 中以便能够处理它并向它发送消息。我不想在 Form1 中创建一些静态函数只是为了从 Class1 到达其中的 MessageBox 类,因为它在适当的 OOP 功能和 Class1 的可重用性方面没有意义。我已经阅读了有关事件和委托(delegate)的内容(我理解它们是指向类似于 C++ 的函数的简单指针),但它在某种程度上令人困惑,而且我未能将这种技术应用到我的代码中。能否请你写一个简单的例子来指引我正确的方向。
谢谢大家
赞博
最佳答案
正确的技术确实是第一位的。如果你不能在你的函数中处理它,那么你就没有业务尝试。将异常处理放在可以处理异常并且程序可以继续(或正常退出)并以适当的方式通知用户错误的地方。
关于c# - WinForm 中的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6891101/