自定义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. ubtntu怎么安装myeclipse

    1.下载jdk.tar.gz文件 2.解压jdk 命令:$sudo tar zxvf ./jdk.tar.gz 3.将解压后的jdk放在/usr/lib/jvm下 4.查看本机是否还有jiava可选 ...

  2. 【WinAPI】User32.dll注释

    #region User32.dll 函数 /// <summary> /// 该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在GDI函数中使用该句柄来在设备 ...

  3. HDU 1257 最少拦截系统 (DP || 贪心)

    最少拦截系统 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Statu ...

  4. 剑指Offer37 二叉树深度与平衡二叉树判断

    /************************************************************************* > File Name: 37_TreeDe ...

  5. Windows添加在此处打开命令CMD

    打开rededit在:HKEY_CLASS_ROOT > * > shell >下面新建一个项CMD 在CMD中新建两个字符串 一个是默认,值为 @shell32.dll,- 另外一 ...

  6. echo,printr,print_r之间的区别

    echo 返回值是void,可以一次输出多个值,多个值之间用逗号分隔.echo是语言结构(language construct)也就是关键字,而并不是真正的函数,因此不能作为表达式的一部分使用.使用的 ...

  7. JS内存泄露常见原因

    详细内容请点击 分享的笔记本-前端 开发中,我们常遇见的一些关于js内存泄露的问题,有时候我们常常会找半天找不出原因,这里给大家介绍简单便捷的方法 1.闭包上下文绑定后没有释放:   2.观察者模式在 ...

  8. POJ 2456

    #include <iostream> #include <vector> #include <algorithm> using namespace std; un ...

  9. Part 48 to 51 Talking about Access Modifiers in C#

    Part 48 Difference between Types and Type Members Part 49 Access Modifiers in C# Part 50 Internal an ...

  10. Objective-C 【NSString-字符串比较&前后缀检查及搜索】

    ———————————————————————————————————————————NSString 字符串比较 #import <Foundation/Foundation.h> vo ...