自定义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. 元数据metadata 对IO有多大影响

    日志文件系统(journaling file systems)可防止系统崩溃时导致的数据不一致问题.对文件系统元数据(metadata)的更改都被保存在一份单独的日志里,当发生 系统崩溃时可以根据日志 ...

  2. page59-一种能够累加数据的ADT(可视化版本) [可用于数据挖掘可视化工具]

    public class VisualAccumulator VisualAccumulator() 创建一个累加器 void addDataValue(double val) 添加一个新的数据值 d ...

  3. UML类图中的六大关系:泛化、实现、依赖、关联、聚合、组合关系

    UML定义的关系主要有:泛化.实现.依赖.关联.聚合.组合,这六种关系紧密程度依次加强,分别看一下 1.泛化 概念:泛化是一种一般与特殊.一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并 ...

  4. ionic实现双击返回键退出软件

    1.首先要安装cordova插件:插件地址:cordova plugin add https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git ...

  5. 剑指Offer46 求1+2+...+n

    /************************************************************************* > File Name: 46_Accumu ...

  6. C++之环境搭建

    1.安装g++ 下载https://sourceforge.net/projects/mingw/files/Installer/mingw-get/mingw-get-0.6.2-beta-2013 ...

  7. ORA-01502错误成因和解决方法

    这个错误是由于索引失效造成的,重建索引后,问题就解决了. 我们看到,当使用类似 alter table xxxxxx move tablespace xxxxxxx 命令后,索引就会失效. 当然,作为 ...

  8. 代码研磨 Slim v3 (二)--app->run()

    APP->run()代码如下:   /** * Run application * * This method traverses the application middleware stac ...

  9. Windows 10 (or 8)Chrome 观看视频发生flash不能加载,即"could't load plugins"原因之一

    最近一直如题,不能看视频,后来发现从一个已经使用管理员权限打开的应用转到Chrome就可以加载flash,而从桌面打开Chrome就加载不了. 今天再次查找信息,从Ubuntu下Chrome不能加载f ...

  10. Mysql按时间段分组查询来统计会员的个数

    1.使用case when方法(不建议使用)-  代码如下 复制代码 SELECT    COUNT(DISTINCT user_id) user_count,    CASE    WHEN cre ...