C# 从类库抛出异常
当您尝试将新异常从ClassLibrary抛出到另一个项目时,Visual studio将打开Class1.cs并处理错误 我的问题是:如何将异常从被调用函数(类库)抛出到调用函数(Windows窗体)? 注意:我不想抛出原始异常,我想抛出这样的自定义异常C# 从类库抛出异常,c#,exception,handler,throw,C#,Exception,Handler,Throw,当您尝试将新异常从ClassLibrary抛出到另一个项目时,Visual studio将打开Class1.cs并处理错误 我的问题是:如何将异常从被调用函数(类库)抛出到调用函数(Windows窗体)? 注意:我不想抛出原始异常,我想抛出这样的自定义异常 throw new Exception("change your password") 或 异常将被下一个catch块捕获。如果没有try-catch,应用程序将崩溃。对于visual studio调试器,调试器将打开Class1.cs并向
throw new Exception("change your password")
或
异常将被下一个catch块捕获。如果没有try-catch,应用程序将崩溃。对于visual studio调试器,调试器将打开Class1.cs并向您显示异常源。
你可以用这样的方法来抓住它:
private void ButtonClick(...)
{
try{
Class1.MethodCall();
}
catch(Exception ex)
{
//Handle the exception here
}
}
我发现了问题
如果您有ClassLibrary项目的源代码(包含在Class1.cs中),并且在调试文件夹中使用了项目dll,则会发生此问题
因此,如果我将项目程序集(仅dll)发送给我的朋友,他将不会遇到问题
有人有明确的想法吗?我认为您在基本理解异常和异常处理方面还有很长的路要走,我强烈建议您学习C#开发方面的资源
为了解决您眼前的问题,我认为您寻求的答案在于:
Visual Studio工具栏->调试->异常
VisualStudio将“中断”您指定的各种异常,任何未检查的内容都将在处理该类型异常的try/catch块的整个过程中运行
当你提到:
注意:我不想抛出原始异常,我想抛出
像这样的自定义异常
throw new Exception("change your password")
这是泛型异常的定义,而不是自定义异常。要定义自定义异常,应将异常子类化:
public class MyCustomException : Exception
{
...
}
然后像这样扔掉它:
throw new MyCustomException("Some description of what went wrong");
然后,要让Visual Studio“中断”该特定异常,请在工具栏->调试->异常窗口(在CLR异常下)中找到您的异常,并标记它旁边的复选框。应用程序中的
Class1.cs
是什么?它在类库项目中吗?或application projectClass1.cs位于ClassLibrary项目中。Visual Studio仅在将错误包含在装运程序中时才会“处理”该错误。这并不常见。是否将类库导入第二个项目?如何导入?您的问题需要澄清。你的意思是想向Visual Studio而不是运行时程序抛出异常吗?谢谢,但是,我不想使用try catch块-我想通过Visual Studio处理设计时的错误。“Visual Studio设计时”的确切含义是什么?我的意思是Visual studioSource中的调试时间存储在.pdb文件中,如果您想在库源代码中进行调试…如果您正在描述的是远程调试,则应随.dll一起提供。
throw new Exception("change your password")
public class MyCustomException : Exception
{
...
}
throw new MyCustomException("Some description of what went wrong");