从类库中抛出异常

时间:2013-12-08 16:27:34

标签: c# exception handler throw

当您尝试将新的异常从ClassLibrary抛出到另一个项目时,Visual Studio将打开Class1.cs并处理错误。

我的问题是:如何将调用函数(ClassLibrary)中的异常抛出到调用函数(Windows窗体)?

注意:我不想抛出原始异常,我想抛出这样的自定义异常

throw new Exception("change your password")

4 个答案:

答案 0 :(得分:2)

我认为您对基于异常和异常处理的基本理解有很长的方法,我强烈建议您选择C#开发资源。

为了解决您的问题,我认为您正在寻找的答案在于:

  

Visual Studio工具栏 - >调试 - >例外

Visual Studio将“破坏”您指定的各种异常,未检查的任何内容都将简单地运行在任何try / catch块处理该异常类型的过程中。

当你提到:

  

注意:我不想抛出原始异常,我想抛出一个   像这样的自定义异常

throw new Exception("change your password")

这是一般异常的定义自定义异常。要定义自定义异常,您应该将Exception:

子类化
public class MyCustomException : Exception 
{
   ...
}

然后抛出它:

throw new MyCustomException("Some description of what went wrong");

然后,要让Visual Studio在该特定异常上“中断”,请在工具栏 - > Debug-> Exceptions窗口(在CLR例外下)中找到您的例外,然后选中它旁边的复选框。

答案 1 :(得分:0)

throw YourExceptionYouWantToThrow;

throw new TypeOfExceptionYouWantToThrow();

该异常将被下一个catch块捕获。如果没有try-catch,应用程序将崩溃。对于visual studio调试器,调试器将打开Class1.cs并显示异常的来源。 你可以用类似的东西来抓住它:

private void ButtonClick(...)
{
    try{
        Class1.MethodCall();
    }
    catch(Exception ex)
    {
        //Handle the exception here
    }
}

答案 2 :(得分:0)

我发现了问题。

如果您有ClassLibrary项目的源代码(包含在Class1.cs中)并且您在调试文件夹中使用了项目dll,则会出现此问题

所以,如果我发送给我的朋友项目大会(仅限dll),他将不会遇到问题

有人有明确的想法吗?

答案 3 :(得分:-1)

try
{
    YourClass.Function();
}
catch(Exception ex)
{
   // throw your Exception
}