WinForm中的异常处理

Cem*_*mbo 3 c# exception-handling winforms

我是C#编程的初学者.我在使用表单构建应用程序时遇到了小问题.我将尝试在我的能力和经验中正确解释它.当我试图处理由Form1中实例化的Class1引起的异常时遇到的问题.假设我在Class1中有函数"public int Calc(int a,int b)".在Form1中,我已经将这个类实例化为"Calc"函数.如果我想传达一个错误(fe:除以零),我必须将函数调用包装到try/catch元素中:

// Form1中:

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
}
Run Code Online (Sandbox Code Playgroud)

...我认为这个例子不是正确的OOP技术所以我不得不决定将try/catch元素直接放入Class1:

// Class1的:

public int Calc(int a, int b)
{
    int c = 0;
    try{
      c = a/b;
    }
    catch(DivideByZeroException e)
    {
      // .........
    }
    return c;
}
Run Code Online (Sandbox Code Playgroud)

...问题是,如何将消息(DivideByZeroException e)添加到我的Form1中以便能够处理并发送消息.我不想在Form1中创建一些静态函数只是为了从Class1到达它的MessageBox类,因为它没有在适当的OOP功能和Class1的可重用性方面有所作为.我已经阅读了有关事件和委托(我理解的是类似于C++的函数的简单指针),但它有点令人困惑,我没有将这种技术应用到我的代码中.请你写一个简单的例子来指出我正确的方向.

感谢你们

Cembo

sir*_*ide 7

正确的技术确实是第一个.如果你无法在你的功能中处理它,那么你就没有尝试过.将异常处理放在可以处理异常的位置,程序可以继续(或正常退出),并以适当的方式通知用户错误.