Fork me on GitHub

MyException

自定义Exception

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace Model
{
    /// <summary>
    /// This class is used to define the custom exception.
    /// </summary>
    [DataContract]
    public class MyExceptionContainer:Exception
    {
        /// <summary>
        /// The exception's starck message.
        /// </summary>
        [DataMember]
        public string ErrorMessage { get; set; }

        /// <summary>
        /// The custom informtion.
        /// </summary>
        [DataMember]
        public string Description { get; set; }

        #region Constructor

        public MyExceptionContainer() { }

        public MyExceptionContainer(string errorMessage, string description)
        {
            this.ErrorMessage = errorMessage;
            this.Description = description;
        }

        #endregion
    }
}
View Code

UserException

using System;
using System.Runtime.Serialization;
using System.Security.Permissions;

namespace Constant
{
    /// <summary>
    /// The class is defined for const fields of login exception.
    /// </summary>
    [Serializable]
    public class UserException:Exception,ISerializable
    {
        #region Fields

        private string message;
        private Exception innerException;

        #endregion

        #region Constructors

        public UserException() { }

        public UserException(string message)
        {
            this.message = message;
        }

        public UserException(string message, Exception exception)
        {
            this.message = message;
            this.innerException = exception;
        }

        #endregion

        #region Const fileds of user functions' exception.

        public const string UserNameIsNull = "*Username is null.";
        public const string PasswordIsNull = "*Password is null.";
        public const string LoginedFailed = "*Username or password is wrong.";
        public const string ChangeNewPasswordIsNull = "*New password is null.";
        public const string ChangeConfirmIsNull = "*Confirm is null.";
        public const string TwiceEnterIsNotSame = "*New password and confirm is not same.";
        public const string PasswordIsWrong = "*Old Password is wrong.";
        public const string UpdatePasswordFailed = "The error is come from UpdatePasswordFailed Method in UserDal Class.";
        public const string RetrieveUserByUserName = "The error is come from RetrieveUserByUserName Method in UserDal Class.";
        public const string ChangePasswordSucceed = "Change password succeed.";
        public const string FormatException = "The parameter error.";

        #endregion
    }
}
View Code

DAL

        public int UpdatePassword(string newPassword, string userName)
        {
            int influenceNumber = 0;

            try
            {
                string sqlText = SqlText.UpdatePassword;
                SqlParameter[] parms = new SqlParameter[] {
                    new SqlParameter("@password", newPassword),
                    new SqlParameter("@userName", userName),
                };

                influenceNumber = SqlHelper.ExecuteNonQuery(sqlText, parms);
            }
            catch (SqlException ex)
            {
                throw new UserException(UserException.UpdatePasswordFailed, ex);
            }

            return influenceNumber;
        }
View Code

BLL

        public IList<Exam> RetrieveExamList(string userName, int order)
        {
            try
            {
                return examDal.RetrieveExamList(userName, order);
            }
            catch (ExamException ex)
            {
                log.Error(ExamException.RetrieveExamList, ex);
                throw new FaultException<MyExceptionContainer>( new MyExceptionContainer() {
                    ErrorMessage = ex.Message,
                    Description = ExamException.RetrieveExamList
                });
            }
        }
View Code
Use
                catch (FaultException<MyExceptionContainer> myException)
                {
                    log.Error(myException.Message, myException);
                }
                catch (FaultException faultException)
                {
                    log.Error(faultException.Message, faultException);
                }
                catch (Exception exception)
                {
                    log.Error(exception.Message, exception);
                }
View Code

 

posted @ 2014-07-01 22:34  种花生的读书人  阅读(664)  评论(0编辑  收藏  举报

该博客仅作为记录笔记,转载随意