我有一個自定義Exception
構造,我想拋出自定義異常使用函數而不是使用throw new ExceptionName("msg")
。 我讀了Best practices for exceptions,我成功地使用了VB
而不是C#
。如何使用基於C#中自定義異常構造的函數拋出自定義異常?
這是我的自定義構建:
[Serializable()]
public class ArtCoreExceptions : Exception
{
public ArtCoreExceptions()
{
}
public ArtCoreExceptions(string message)
: base(message)
{
}
public ArtCoreExceptions(string message, Exception inner)
: base(message, inner)
{
}
protected ArtCoreExceptions(System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
{ }
}
我試圖做這樣定義一個函數:
UploadFailureException ArtCoreExceptions()
{
string description = "My NewFileIOException Description";
return new ArtCoreExceptions(description);
}
但是編譯器給了我丟失的引用錯誤 「UploadFailureException」
背景
在VB
我曾經做到以下幾點:
Public Class ArtCoreExceptions
Inherits Exception
Public Sub New()
End Sub
Public Sub New(message As String)
MyBase.New(message)
End Sub
Public Sub New(message As String, inner As Exception)
MyBase.New(message, inner)
End Sub
Public Sub New(ByVal info As SerializationInfo, context _
As StreamingContext)
MyBase.New(info, context)
End Sub
End Class
Public Function UploadFailureException() As ArtCoreExceptions
Dim description As String = "File could not be uploaded"
Return New ARTSQLExceptions(description)
End Function
而且我以前throw UploadFailureException
作爲例外,我該怎麼做相同的C#
你有沒有考慮建立從ArtCoreExceptions衍生_「公共類UploadFailureException一個UploadFailureException類:ArtCoreExceptions {公共UploadFailureException( ):base(「文件無法上傳」){}}「_ - 您可能能夠處理特定的異常,而不是具有泛型異常,並且堆棧跟蹤的頂部將始終引用異常點而不是以下函數調用。 – PaulF