[英]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.