ABP框架中的异常详细信息

问题描述

我想用ABP .NET Core返回异常的详细信息,我注意到的是当我转到AbpAuditLogs表和App_Data \ Logs logFile时,它们包含详细的异常,但是当我使用以下方法返回异常时,它仅显示没有任何详细信息的一般异常(500内部服务器错误

try{
:
:
:
}
catch (Exception ex)
{
                throw new System.ArgumentException(ex.InnerException.Message.ToString(),"original");
}

那么,如何为用户返回特定的例外,例如示例电子邮件验证例外?

更新

我将进一步解释,以使问题更清楚:

上面这个问题与我处理异常的方式有关。 问题是,当从 swagger或Postman 发出对服务的请求时,总是看到状态错误500的常规错误,没有任何详细信息,这迫使我从Log File或Log Table中查看异常的详细信息,我想直接从 Swagger或Postman 看到异常的详细信息(例如 FileNotFoundException ),而不必返回到日志文件或AbpAuditLogs表。

解决方法

我认为用户友好异常将为您服务。

因为如果异常实现了IUserFriendlyException接口,则ABP不会更改其Message和Details属性并将其直接发送给客户端。

throw new UserFriendlyException(
"Username should be unique!"
);

您可以找到更多信息here

,

实际上,我找到了@Mehdi Daustany的答案in this question。我所做的正是@Mehdi Daustany的答案,我添加了以下代码:

   if (_env.EnvironmentName.ToLower() == "development")
    Configuration.Modules.AbpWebCommon().SendAllExceptionsToClients = true;

在***。Web.Core下,然后在Swagger中出现了例外的详细信息

,
services.Configure<AbpExceptionHandlingOptions>  (options =>
{
    options.SendExceptionsDetailsToClients = true;
});

以上代码将配置abp以返回所有异常详细信息。只需将其添加到配置中即可。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...