当您尝试将新的异常从ClassLibrary抛出到另一个项目时,Visual Studio将打开Class1.cs并处理错误。
我的问题是:如何将调用函数(ClassLibrary)中的异常抛出到调用函数(Windows窗体)?
注意:我不想抛出原始异常,我想抛出这样的自定义异常
throw new Exception("change your password")
答案 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
}