自定义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
}
}

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
}
}

DAL

        public int UpdatePassword(string newPassword, string userName)
{
int influenceNumber = ; 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;
}

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
});
}
}
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);
}

MyException的更多相关文章

  1. http://www.myexception.cn/program/767123.html

    http://www.myexception.cn/program/767123.html

  2. 31.3 自定义异常类 MyException

    /* * 异常的分类: 运行时期异常:RuntimeException的子类就是运行时期异常,在编译时期可以自由选择处理或者不处理 编译时期异常:是Exception的子类,非RuntimeExcpe ...

  3. PHP验证用户登录例子-学习笔记

    1.基本流程: 2.UML类图: 3.PHP代码: 3.1 index.php <?php /** * Created by PhpStorm. * User: andy * Date: 16- ...

  4. [C#] C# 知识回顾 - 你真的懂异常(Exception)吗?

    你真的懂异常(Exception)吗? 目录 异常介绍 异常的特点 怎样使用异常 处理异常的 try-catch-finally 捕获异常的 Catch 块 释放资源的 Finally 块 一.异常介 ...

  5. [C#] C# 知识回顾 - 学会使用异常

    学会使用异常 在 C# 中,程序中在运行时出现的错误,会不断在程序中进行传播,这种机制称为“异常”. 异常通常由错误的代码引发,并由能够更正错误的代码进行 catch. 异常可由 .NET 的 CLR ...

  6. [干货来袭]C#6.0新特性

    微软昨天发布了新的VS 2015 ..随之而来的还有很多很多东西... .NET新版本 ASP.NET新版本...等等..太多..实在没消化.. 分享一下也是昨天发布的新的C#6.0的部分新特性吧.. ...

  7. C# BackgroundWorker 详解

    在C#程序中,经常会有一些耗时较长的CPU密集型运算,如果直接在 UI 线程执行这样的运算就会出现UI不响应的问题.解决这类问题的主要途径是使用多线程,启动一个后台线程,把运算操作放在这个后台线程中完 ...

  8. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

  9. 札记:Java异常处理

    异常概述 程序在运行中总会面临一些"意外"情况,良好的代码需要对它们进行预防和处理.大致来说,这些意外情况分三类: 交互输入 用户以非预期的方式使用程序,比如非法输入,不正当的操作 ...

随机推荐

  1. php实现签到功能

    首先我在数据库里建了两张表,一个是用户的积分表,一个是签到状态表,分来用来记录用户的积分数和先到状态 在用户签到状态表中我们有一个字段,last_sign_time,即上一次签到时间,每次可以签到的时 ...

  2. linux_机器信息查询

    查看系统版本:[root@css-management ~]# lsb_release -aLSB Version: :core-4.0-amd64:core-4.0-noarch:graphics- ...

  3. 使用Excel批量更改或插入SQL语句

    在平常中我们可以通过使用SQL批量更新或新增更新数据库数据,对于这些都是有逻辑的数据可以这样处理但是对于无逻辑的数据我们如何处理(这里的数据比较多). 我是通过Excel的方式来处理的.以下已插入为例 ...

  4. jQuery的deferred对象详解(二)

    Deferred对象是由$.Deferred构造的,$.Deferred被实现为简单的工厂模式. $.Deferred的实现 创建三个$.Callbacks对象,分别表示成功done,失败fail,处 ...

  5. Markdown Test

    P1 1.1 interview 1.2 invoker show 1.3 Wtf? P2 for example this is a story int main() { printf(" ...

  6. Oracle存储过程的调用(返回参数)

    CREATE OR REPLACE PROCEDURE test_in_out_exception (v_empno VARCHAR2,v_guess_sal NUMBER,v_true_sal OU ...

  7. Javascript计算中英文混输字符串长度V2

    同上篇, client端也需要同样规则验证 compact_strlen: function(str) { var strlen = 0; for(var i =0; i<str.length; ...

  8. 应用越来越广泛的css伪类

    说起css伪类,学习web前端网页设计的同学们应该对此应该不是很陌生,以前很多的网页的特效大多是通过js来实现的.但是随着CSS3不断开发,利用css实现网页的特效不仅响应不错,而且还减少了很多的代码 ...

  9. Table of Contents - Lombok

    Installation Lombok Annotations @Getter, @Setter, @ToString, @EqualsAndHashCode & @Data @NoArgsC ...

  10. Android Studio 1.3新版体验

    Google发布的Android Studio最新版是 1.3 版,上周的I/O大会中三位Google工程师对Android Studio作了将近1小时的演讲: 之前一直习惯用Eclipse luna ...