C/S开发框架系统异常处理机制(Exception Handler)
C/S开发框架系统异常处理机制(Exception Handler)
异常处理机制(Exception Handler)
构建安全稳定的应用系统首先要处理的是系统抛出的异常, 否则在程序运行中因系统发生错误而中止程序。我总结了以下四种保护机制:
1. 处理系统未被捕获的异常, static void Main() 方法内设置
//引发未捕获的异常,这里没有try{}catch()异常保护,
//由Application.ThreadException事件捕获
2.处理界面层抛出的异常
//界面层异常指捕获窗体内的错误。
//常用错误是操作未实例化的对象,索引错误,第三方控件错误等.
3.处理业务逻辑层抛出异常
4. 处理数据层或多层嵌套调用中抛出异常



用户自定义异常:
/// <summary>
/// 用户自定义异常
/// </summary>
public class CustomException : Exception
{
private string MSG = "系统产生用户自定义异常!";
private object _sender = null;
public CustomException(object sender, string msg)
: base(msg)
{
_sender = sender;
}
}
/// <summary>
/// 用户操作未授权的窗体或业务逻辑所产生的异常
/// </summary>
public class UnauthorizedException : CustomException
{
public UnauthorizedException(object sender, string msg)
: base(sender, msg)
{
//
}
}
/// <summary>
/// 用户操作已锁定的单据
/// </summary>
public class OperateLockedOrder : CustomException
{
public OperateLockedOrder(object sender, string msg)
: base(sender, msg)
{
//
}
}
// 来源:www.CSFramework.com, C/S结构框架学习网
/// 用户自定义异常
/// </summary>
public class CustomException : Exception
{
private string MSG = "系统产生用户自定义异常!";
private object _sender = null;
public CustomException(object sender, string msg)
: base(msg)
{
_sender = sender;
}
}
/// <summary>
/// 用户操作未授权的窗体或业务逻辑所产生的异常
/// </summary>
public class UnauthorizedException : CustomException
{
public UnauthorizedException(object sender, string msg)
: base(sender, msg)
{
//
}
}
/// <summary>
/// 用户操作已锁定的单据
/// </summary>
public class OperateLockedOrder : CustomException
{
public OperateLockedOrder(object sender, string msg)
: base(sender, msg)
{
//
}
}
// 来源:www.CSFramework.com, C/S结构框架学习网
/// <summary>
/// 处理系统所产生的异常
/// </summary>
public class ExceptionHandle
{
//处理由sender参数传递过来的异常
public static void Handle(object sender, Exception ex)
{
string msg = "Sender:" sender.GetType().Name ":\r\nException Type:"
ex.GetType().Name "\r\nDescription:" ex.Message;
ExceptionLog.WriteLog(msg "\r\nException Time:" DateTime.Now.ToString());
ExceptionLog.WriteLog("------------------------------------------------------");
_text.Text = msg; //在TextBox控件内显示
MessageBox.Show(msg, "捕获到异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
private static TextBox _text = null;
/// <summary>
/// 这个方法仅用于显示当前异常信息,无实际意义!
/// </summary>
public static void ExceptionTextBox(TextBox text)
{
_text = text;
}
}
// 来源:www.CSFramework.com, C/S结构框架学习网

参考文档:
WCF:SecurityNegotiationException 调用方未由服务进行身份验证
CSFramework.WebApi时钟定时作业异步处理程序(IThreadHandler接口)实现
.NETCore WebApi运行报错:System.AggregateException:“Some services are not able to be constructed|C/S开发框架
达梦数据库DmException: 变量空间溢出 [sql]: INSERT INTO,Microsoft.EntityFrameworkCore.DbUpdateException|C/S开发框架
MySqlConnector.MySqlException:“Loading local data is disabled|C/S开发框架
OracleException:“ORA|00942: 表或视图不存在”解决方案|C/S开发框架
EFCore报错:OracleException: ORA|01465: 无效的十六进制数字|C/S开发框架
EF提交数据:DbUpdateException:不能更新时间戳列。(Timestamp类型)|C/S开发框架
FastReport.NET报错 System.PlatformNotSupportedException:“Operation is not supported on this platform.”
Relations.Add报错:System.ArgumentException:“不能启用此约束,因为不是所有的值都具有相应的父值。”
FastReport.NET v2021 打印预览报表出错NullReferenceException / RestoreEncodedText,踩坑!
CSFrameworkV6 - .NET敏捷开发之道 - Exception异常扩展类
调用WCF服务System.ServiceModel.ServiceActivationException:"无法激活请求的服务"
C/S框架日志管理管理器(LogUserOperate)/本地日志(LogLocalException)/数据库日志(LogDB)
CSFramework.AutoUpgrader 发布命令升级包出错:InvalidOperationException使用 XmlInclude 或 SoapInclude 特性静态指定非已知的类型
C#获取按钮的EventClick事件,EventHandlerList委托的调用列表
WCF:SecurityNegotiationException 调用方未由服务进行身份验证
CSFramework.WebApi时钟定时作业异步处理程序(IThreadHandler接口)实现
.NETCore WebApi运行报错:System.AggregateException:“Some services are not able to be constructed|C/S开发框架
达梦数据库DmException: 变量空间溢出 [sql]: INSERT INTO,Microsoft.EntityFrameworkCore.DbUpdateException|C/S开发框架
MySqlConnector.MySqlException:“Loading local data is disabled|C/S开发框架
OracleException:“ORA|00942: 表或视图不存在”解决方案|C/S开发框架
EFCore报错:OracleException: ORA|01465: 无效的十六进制数字|C/S开发框架
EF提交数据:DbUpdateException:不能更新时间戳列。(Timestamp类型)|C/S开发框架
FastReport.NET报错 System.PlatformNotSupportedException:“Operation is not supported on this platform.”
Relations.Add报错:System.ArgumentException:“不能启用此约束,因为不是所有的值都具有相应的父值。”
FastReport.NET v2021 打印预览报表出错NullReferenceException / RestoreEncodedText,踩坑!
CSFrameworkV6 - .NET敏捷开发之道 - Exception异常扩展类
调用WCF服务System.ServiceModel.ServiceActivationException:"无法激活请求的服务"
C/S框架日志管理管理器(LogUserOperate)/本地日志(LogLocalException)/数据库日志(LogDB)
CSFramework.AutoUpgrader 发布命令升级包出错:InvalidOperationException使用 XmlInclude 或 SoapInclude 特性静态指定非已知的类型
C#获取按钮的EventClick事件,EventHandlerList委托的调用列表
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
