无法使用自定义属性生成自定义异常 Class 构造函数
Cannot Make Custom Exception Class Constructor with Custom Properties
我不理解在尝试为自定义异常设置以下构造函数时遇到的编译错误 class:
[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;
}
}
我得到的错误如下:
The best overloaded method match for
'System.Exception.Exception(string)' has some invalid arguments
&
cannot convert from 'int' to 'string'
两者都发生在 class 的 : base(PracticeID) 部分。
我不明白为什么要在这里找字符串。
我尝试寻找答案并回答了这两个之前提出的问题
What is the correct way to make a custom .NET Exception serializable?
我不确定我在做什么与导致错误的第一个不同,我尝试读取/复制第二个但我完全迷失了。
这个异常会发生在内循环中,我希望在外循环上有一个客户错误捕获块来处理这种特殊情况。
我想一个解决方法就是使用异常 class 的数据 属性 并在外循环的 catch 块中检查是否有一个名为 "Authenticate" 并在那里处理异常。
不过我不想那样做,因为那种异常处理是自定义异常 classes 的本意。
基本异常 class 没有匹配的构造函数。
改为更改您的代码以调用空构造函数(选项 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;
}
}
我不理解在尝试为自定义异常设置以下构造函数时遇到的编译错误 class:
[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;
}
}
我得到的错误如下:
The best overloaded method match for 'System.Exception.Exception(string)' has some invalid arguments
&
cannot convert from 'int' to 'string'
两者都发生在 class 的 : base(PracticeID) 部分。
我不明白为什么要在这里找字符串。
我尝试寻找答案并回答了这两个之前提出的问题
What is the correct way to make a custom .NET Exception serializable?
我不确定我在做什么与导致错误的第一个不同,我尝试读取/复制第二个但我完全迷失了。
这个异常会发生在内循环中,我希望在外循环上有一个客户错误捕获块来处理这种特殊情况。
我想一个解决方法就是使用异常 class 的数据 属性 并在外循环的 catch 块中检查是否有一个名为 "Authenticate" 并在那里处理异常。
不过我不想那样做,因为那种异常处理是自定义异常 classes 的本意。
基本异常 class 没有匹配的构造函数。
改为更改您的代码以调用空构造函数(选项 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;
}
}