C# 创建多个自定义异常?
尝试在c中创建前几个自定义异常 我真的不理解MSDN文章以及为什么它们有多个相同的实例C# 创建多个自定义异常?,c#,asp.net-mvc,exception,C#,Asp.net Mvc,Exception,尝试在c中创建前几个自定义异常 我真的不理解MSDN文章以及为什么它们有多个相同的实例 public class CustomException : Exception { public CustomException(): base() { } public CustomException(some message): base() { } } 等等 我想做的事情如下 public class CustomException : Exception
public class CustomException : Exception
{
public CustomException(): base() { }
public CustomException(some message): base() { }
}
等等
我想做的事情如下
public class CustomException : Exception
{
public AlreadySentException() : base () { }
public InvalidMessageException() : base() { }
}
我只想能够调用这些异常
对于如何实施这一点的想法/建议,我们将不胜感激
谢谢定义不同的异常类。就这么简单
[Serializable]
public class CustomException : Exception
{
public CustomException() { }
public CustomException(string message) : base(message) { }
public CustomException(string message, Exception inner) : base(message, inner) { }
protected CustomException(
System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
: base(info, context) { }
}
[Serializable]
public class AlreadySentException : CustomException
{
public AlreadySentException() { }
public AlreadySentException(string message) : base(message) { }
public AlreadySentException(string message, Exception inner) : base(message, inner) { }
protected AlreadySentException(
System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
: base(info, context) { }
}
[Serializable]
public class InvalidMessageException : CustomException
{
public InvalidMessageException() { }
public InvalidMessageException(string message) : base(message) { }
public InvalidMessageException(string message, Exception inner) : base(message, inner) { }
protected InvalidMessageException(
System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
: base(info, context) { }
}
异常只是从基异常类派生的类 这不是有效的c代码。但他们看起来可能是建设者:
public CustomException(): base()
{
}
public CustomException(some message): base()
{
}
这些是一个CustomException类的不同构造函数。根据是否要包含消息,可以使用其中一个来构造类。但它们都会导致相同的例外
要定义所需的异常,您需要从异常派生每个异常:
如果您对类继承感到不舒服,我建议您先温习一下
public CustomException(): base()
{
}
public CustomException(some message): base()
{
}
这些是重载构造函数,它们引用相同的对象;您可以通过调用new CustomException或CustomExceptionsome字符串来实例化CustomException类
您需要的是不同的类,如下所示:
public class AlreadySentException : Exception
{
}
public class InvalidMessageException: Exception
{
}
您也可以对这些类使用重载。假设您想要拥有默认消息或自定义消息,可以执行以下操作:
public class AlreadySentException : Exception
{
public AlreadySentException() : base("Already sent"){}
public AlreadySentException(string message) : base(message){}
}
它将调用重载版本的异常基类,该基类填充消息属性。类不是这样工作的。这些都是构造函数。谢谢,哈哈,我明白了:别忘了VisualStudio有异常的spippet。只需键入exception并按Tab@NechytailoOleh这个例子就是这样产生的;谢谢你的帮助!OP似乎需要AlreadySent和InvalidaMessage异常才能从其自定义异常派生。感谢您的帮助!
public class AlreadySentException : Exception
{
}
public class InvalidMessageException: Exception
{
}
public class AlreadySentException : Exception
{
public AlreadySentException() : base("Already sent"){}
public AlreadySentException(string message) : base(message){}
}