2015-10-30 29 views
1

我發現ServiceStack 4自動解包異常,如何防止?ServiceStack自動解包異常

例如,我暴露了以下API。

public async Task GET(XXXRequest request) 
{ 
    try 
    { 
    throw new Exception("#inner"); 
    } 
    catch(Exception ex) 
    { 
    throw new Exception("#outer", ex); 
    } 
} 

而且我有一個記錄器捕獲錯誤

Plugins.Add(new RequestLogsFeature() 
{ 
    EnableRequestBodyTracking = true, 
    EnableResponseTracking = true, 
    EnableErrorTracking = true, 
    RequestLogger = new CustomRequestLogger() 
}); 

class CustomRequestLogger : InMemoryRollingRequestLogger 
{ 

    public override void Log(IRequest request, object requestDto, object response, TimeSpan requestDuration) 
    { 
     base.Log(request, requestDto, response, requestDuration); 

     // handle errors 
     HttpError httpError = response as HttpError; 
     if (httpError != null) 
     { 
      // log error 
     // httpError is #inner 
     return; 
     } 
    } 
} 

的問題是:我只捕獲內部異常,外層的異常消失

enter image description here

回答

3

您可以禁用這在你的AppHost與:

SetConfig(new HostConfig { 
    ReturnsInnerException = false, 
});