Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get more detailed exception in ABP?

I created a CrudAppService. When I invoke its dynamic API by using swagger, I get a generic 500 error with this description:

{
  "result": null,
  "targetUrl": null,
  "success": false,
  "error": {
    "code": 0,
    "message": "An internal error occurred during your request!",
    "details": null,
    "validationErrors": null
  },
  "unAuthorizedRequest": false,
  "__abp": true
}

How can I get a more detailed exception to debug? Is there something I have to enable?

like image 640
alex Avatar asked Jan 01 '18 15:01

alex


3 Answers

You can simply send the exception details to the client by enabling one of ABP's configurations (SendAllExceptionsToClients) in ***.Web.Core Module, like this:

public override void PreInitialize()
{   
    Configuration.Modules.AbpWebCommon().SendAllExceptionsToClients = true;
}

Then you get the exception details on the client. Recommended only during development.

like image 79
Pradeep Raj Thapaliya Avatar answered Nov 07 '22 07:11

Pradeep Raj Thapaliya


Check error in Logs.txt.

From the documentation on Logging:

Configuration

All configuration is done for Log4Net when you create your application from ASP.NET Boilerplate templates.

...

It's defined in the log4net.config file of the application as shown below:

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" >
    <file value="Logs/Logs.txt" />
like image 10
aaron Avatar answered Nov 07 '22 07:11

aaron


If you use CurrentUnitOfWork, you can catch the exception also and using UserFriendlyException you can throw the desired exception. UserFriendlyException is a specific type of exception so ABP directly shows exception message to the end user.

Example:

try
{
    await _repository.InsertAsync(...);
    await CurrentUnitOfWork.SaveChangesAsync();
}
catch(Exception ex)
{
    throw new UserFriendlyException("user friendly exception message");
}
like image 2
vivek nuna Avatar answered Nov 07 '22 07:11

vivek nuna