![](/img/trans.png)
[英]Merge DictionaryResource from Application in a ClassLibrary
[英]Throw exception from ClassLibrary
当您尝试将新的异常从ClassLibrary抛出到另一个项目时,Visual Studio将打开Class1.cs并处理错误。
我的问题是:如何将异常从被调用函数(ClassLibrary)扔给调用者函数(Windows窗体)?
注意 :我不想引发原始异常,我想引发这样的自定义异常
throw new Exception("change your password")
我认为您对Exception和Exception处理的基本理解还有很长的路要走,我强烈建议您选择有关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针对该特定异常“中断”,请在“工具栏”->“调试”->“异常”窗口(在CLR异常下)中找到您的异常,并标记它旁边的复选框。
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
}
}
我发现了问题。
如果您有ClassLibrary项目的源代码(包括在Class1.cs中),并且已在调试文件夹中使用了项目dll,则将发生此问题。
因此,如果我将项目程序集(仅用于dll)发送给我的朋友,那么他将不会遇到问题
有人有明确的主意吗?
try
{
YourClass.Function();
}
catch(Exception ex)
{
// throw your Exception
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.