我不了解尝试为自定义异常类设置以下构造函数时遇到的编译错误:
[Serializable]
class AuthenticationException : Exception
{
public int PracticeID { get; set; }
public AuthenticationException()
: base() { }
public AuthenticationException(string message)
: base(message) { }
public AuthenticationException(string message, Exception InnerException)
: base(message, InnerException) { }
public AuthenticationException(SerializationInfo info, StreamingContext context)
: base(info, context) { }
public AuthenticationException(int PracticeID)
: base(PracticeID)
{
this.PracticeID = PracticeID;
}
}
我得到的错误如下:
最佳重载方法匹配'System.Exception.Exception(string)'有一些无效的参数
和
无法从'int'转换为'string'
两者都发生在该类的:base(PracticeID)部分。
我不明白为什么要在这里寻找一个字符串。
我试图寻找答案,并针对这两个先前提出的问题
使自定义.NET Exception可序列化的正确方法是什么?
我不确定我正在做的操作与导致错误的第一个操作有所不同,我尝试读取/复制第二个错误,但我完全迷失了。
该异常将在内部循环中发生,我想在外部循环上有一个客户错误捕获块来处理这种特殊情况。
我认为一种解决方法是仅使用异常类的Data属性,并在外部循环的catch块中检查是否存在诸如“ Authenticate”之类的项的键并在那里处理异常。
但我不想这样做,因为那种排序异常处理是自定义异常类要执行的操作。
基本异常类没有匹配的构造函数。
相反,更改代码以调用空的构造函数(选项A),或者使用id提供默认错误消息(选项B):
[Serializable]
class AuthenticationException : Exception
{
public int PracticeId { get; }
// Other constructors
// Option A
public AuthenticationException(int practiceId)
: base()
{
PracticeId = practiceId;
}
// Option B
public AuthenticationException(int practiceId)
: base("Invalid id: " + practiceId)
{
PracticeId = practiceId;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句