Custom exception with properties

2020-08-20 09:06发布

问题:

After some research I found that a custom exception should look like this:

using System;
using System.Runtime.Serialization;

namespace YourNamespaceHere
{
    [Serializable()]
    public class YourCustomException : Exception, ISerializable
    {
        public YourCustomException() : base() { }
        public YourCustomException(string message) : base(message) { }
        public YourCustomException(string message, System.Exception inner) : base(message, inner) { }
        public YourCustomException(SerializationInfo info, StreamingContext context) : base(info, context) { }
    }
}

But I have small problem.

I want above exception to have two additional fields, say int ID and int ErrorCode. How do I add these two fields and initialize them - shall I add a new constructor, with these two parameters and the message parameter?

Also can you help me and show how to write the serialization methods for this new class which will have the two new properties?

Thank you.

回答1:

It will look something like this. You look for more details here What is the correct way to make a custom .NET Exception serializable?

 [Serializable()]
        public class YourCustomException : Exception, ISerializable
        {
            public Int Id { get; set; }
            public Int ErrorCode { get; set; }
            public YourCustomException() : base() { }
            public YourCustomException(string message) : base(message) { }
            public YourCustomException(string message, System.Exception inner) : base(message, inner) { }
            public YourCustomException(SerializationInfo info, StreamingContext context) : base(info, context) { }
            public YourCustomException(string message, int Id, int ErrorCode)
                : base(message)
            {
                this.Id = Id;
                this.ErrorCode = ErrorCode;
            }
        }


标签: c# .net