CSFrameworkV6 - .NET敏捷开发之道 - Exception异常扩展类
CSFrameworkV6 - .NET敏捷开发之道 - Exception异常扩展类BizException异常扩展类该类可以显示系统异常详情,包括【异常类型】、【异常信息】、【异常方法】、【堆栈调用】以及【EF内部异常】 DbEntityValidationException异常。

开发人员根据异常提示消息定位问题快速解决问题,提高开发效率!

Exception扩展类
C# Code:
/// <summary>
/// www.csframework.com .NET敏捷开发之道
/// </summary>
public static class EFExceptionExtension
{
/// <summary>
/// 获取异常信息
/// </summary>
/// <param name="ex">异常实例</param>
/// <param name="showStackTrace">获取堆栈信息</param>
/// <param name="Prefix"></param>
/// <returns></returns>
public static string GetMessageEF(this Exception ex, bool showStackTrace = false, string Prefix = "")
{
StringBuilder sb = new StringBuilder();
sb.AppendLine(Prefix + "【异常类型】∶" + ex.GetType().Name);
sb.AppendLine(Prefix + "【异常信息】:" + ex.Message);
sb.AppendLine(Prefix + "【异常方法】:" + ex.TargetSite);
if (showStackTrace)
sb.AppendLine(Prefix + "【堆栈调用】:" + ex.StackTrace);
//EF框架校验实体异常
if (ex is DbEntityValidationException efex)
{
if (efex.EntityValidationErrors.Count() > 0)
{
var sb1 = new StringBuilder();
foreach (var v in efex.EntityValidationErrors)
{
sb1.AppendLine(String.Join("\r\n", v.ValidationErrors.Select(s => s.ErrorMessage).ToList()));
};
if (sb1.Length > 0)
sb.AppendLine(Prefix + "【EF内部异常】:" + sb1.ToString());
}
}
//Exception内部异常
if (ex.InnerException != null)
{
sb.AppendLine(Prefix + "【InnerException】:" + ex.InnerException.Message);
if (ex.InnerException.InnerException != null)
sb.AppendLine(ex.InnerException.InnerException.Message);
}
return sb.ToString();
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
/// www.csframework.com .NET敏捷开发之道
/// </summary>
public static class EFExceptionExtension
{
/// <summary>
/// 获取异常信息
/// </summary>
/// <param name="ex">异常实例</param>
/// <param name="showStackTrace">获取堆栈信息</param>
/// <param name="Prefix"></param>
/// <returns></returns>
public static string GetMessageEF(this Exception ex, bool showStackTrace = false, string Prefix = "")
{
StringBuilder sb = new StringBuilder();
sb.AppendLine(Prefix + "【异常类型】∶" + ex.GetType().Name);
sb.AppendLine(Prefix + "【异常信息】:" + ex.Message);
sb.AppendLine(Prefix + "【异常方法】:" + ex.TargetSite);
if (showStackTrace)
sb.AppendLine(Prefix + "【堆栈调用】:" + ex.StackTrace);
//EF框架校验实体异常
if (ex is DbEntityValidationException efex)
{
if (efex.EntityValidationErrors.Count() > 0)
{
var sb1 = new StringBuilder();
foreach (var v in efex.EntityValidationErrors)
{
sb1.AppendLine(String.Join("\r\n", v.ValidationErrors.Select(s => s.ErrorMessage).ToList()));
};
if (sb1.Length > 0)
sb.AppendLine(Prefix + "【EF内部异常】:" + sb1.ToString());
}
}
//Exception内部异常
if (ex.InnerException != null)
{
sb.AppendLine(Prefix + "【InnerException】:" + ex.InnerException.Message);
if (ex.InnerException.InnerException != null)
sb.AppendLine(ex.InnerException.InnerException.Message);
}
return sb.ToString();
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
使用方法
C# Code:
catch (Exception ex)
{
db.RollbackTransaction();
throw new BizException(ex.GetMessageEF());
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
{
db.RollbackTransaction();
throw new BizException(ex.GetMessageEF());
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
BizException
C# Code:
public class BizException : Exception
{
public BizException();
public BizException(string message);
public BizException(int errorCode, string message);
public int ErrorCode { get; set; }
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
{
public BizException();
public BizException(string message);
public BizException(int errorCode, string message);
public int ErrorCode { get; set; }
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761

参考文档:
热烈祝贺!正式发布CSFrameworkV6旗舰版 - .NET敏捷开发之道
.NETCore WebApi运行报错:System.AggregateException:“Some services are not able to be constructed|C/S开发框架
FastReport.NET报错 System.PlatformNotSupportedException:“Operation is not supported on this platform.”
CSFrameworkV6 .NET软件开发平台下载,代码生成器下载
FastReport.NET v2021 打印预览报表出错NullReferenceException / RestoreEncodedText,踩坑!
CSFrameworkV6开发框架升级VS2022+.NET8+DevExpress24.1操作步骤|C/S开发框架
CSFrameworkV6 | 用户自定义打印机设置 (FastReport.NET 2023.1.8)|C/S开发框架
.NET C/S架构软件用户授权设计方案(mac地址+白名单用户)|C/S开发框架
达梦数据库DmException: 变量空间溢出 [sql]: INSERT INTO,Microsoft.EntityFrameworkCore.DbUpdateException|C/S开发框架
OracleException:“ORA|00942: 表或视图不存在”解决方案|C/S开发框架
CSFrameworkV6旗舰版 | 基础资料窗体改装主从子表(多级明细表)解决方案|C/S开发框架
CSFrameworkV6旗舰版 | 主从子表(多级明细表)设计方案|C/S开发框架
CSFrameworkV6旗舰版 | 表格多选操作删除记录|C/S开发框架
CSFrameworkV6旗舰版 | 导入导出Excel文件数据开发教程|C/S开发框架
CSFrameworkV6旗舰版 | 单表基础资料窗体完整C#源码|C/S开发框架
CSFrameworkV6旗舰版|成功案例|塑料板材行业ERP系统|C/S开发框架
热烈祝贺!正式发布CSFrameworkV6旗舰版 - .NET敏捷开发之道
.NETCore WebApi运行报错:System.AggregateException:“Some services are not able to be constructed|C/S开发框架
FastReport.NET报错 System.PlatformNotSupportedException:“Operation is not supported on this platform.”
CSFrameworkV6 .NET软件开发平台下载,代码生成器下载
FastReport.NET v2021 打印预览报表出错NullReferenceException / RestoreEncodedText,踩坑!
CSFrameworkV6开发框架升级VS2022+.NET8+DevExpress24.1操作步骤|C/S开发框架
CSFrameworkV6 | 用户自定义打印机设置 (FastReport.NET 2023.1.8)|C/S开发框架
.NET C/S架构软件用户授权设计方案(mac地址+白名单用户)|C/S开发框架
达梦数据库DmException: 变量空间溢出 [sql]: INSERT INTO,Microsoft.EntityFrameworkCore.DbUpdateException|C/S开发框架
OracleException:“ORA|00942: 表或视图不存在”解决方案|C/S开发框架
CSFrameworkV6旗舰版 | 基础资料窗体改装主从子表(多级明细表)解决方案|C/S开发框架
CSFrameworkV6旗舰版 | 主从子表(多级明细表)设计方案|C/S开发框架
CSFrameworkV6旗舰版 | 表格多选操作删除记录|C/S开发框架
CSFrameworkV6旗舰版 | 导入导出Excel文件数据开发教程|C/S开发框架
CSFrameworkV6旗舰版 | 单表基础资料窗体完整C#源码|C/S开发框架
CSFrameworkV6旗舰版|成功案例|塑料板材行业ERP系统|C/S开发框架
其它资料:
什么是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内容管理系统 |
在线客服
