我的api中有一个控制器方法,该方法调用引发自定义异常的服务。
customException :
public class DematerialisationException : Exception
{
private static readonly string DefaultMessage = "An error occurred during dematerialisation.";
public DematerialisationException() : base(DefaultMessage)
{ }
public DematerialisationException(string message) : base(message)
{ }
public DematerialisationException(Exception inner) : base (DefaultMessage, inner)
{ }
public DematerialisationException(string message, Exception inner) : base (message, inner)
{ }
}
服务中调用的方法直接引发异常:
public async Task<LiasseDetails> CreateLiasseAsync(LiasseCreate liasseData) =>
throw new DematerialisationException();
我希望ex3会被命中,而您可以在屏幕快照中看到它是ex2。 innerException的类型正确,那么为什么会打错断点呢?我做错了什么?
谢谢
答案 0 :(得分:2)
在变量观察器中,您可以看到在获取ServiceException
的值时抛出了InnerException
,这是因为无法序列化异常对象。
因此,尝试将属性[Serializable()]
添加到DematerialisationException
类中:
[Serializable()]
public class DematerialisationException : Exception
{
private static readonly string DefaultMessage = "An error occurred during dematerialisation.";
public DematerialisationException() : base(DefaultMessage)
{ }
public DematerialisationException(string message) : base(message)
{ }
public DematerialisationException(Exception inner) : base (DefaultMessage, inner)
{ }
public DematerialisationException(string message, Exception inner) : base (message, inner)
{ }
}