[英]Conveying additional program state info through custom exception handling
简而言之,我正在努力实现以下目标:
public class AssetParseException : Exception
{
public AssetParseException()
{
}
public AssetParseException( string message/*, int assetID*/ ): base(message)
{
}
}
理想情况下,这将为我提供以下功能:
catch (AssetParseException exception)
{
int idThatCausedIssue = exception.assetID;
}
我想要的额外信息是integer参数。 我想在更高级别上捕获AssetParseExceptions,并知道哪个资产引发了异常。 这可能吗? 我是否需要将所有这些信息推送到消息中,然后在更高级别进行解析?
只需添加:
public int AssetID {get; private set;}
到AssetParseException
类,并在使用创建新异常时进行设置
AssetParseException(string message, int assetID):base(message)
{
AssetID = assetID;
}
我们一直在做。 知道有关异常的其他信息总是很高兴,为什么不把它放进去,因为您已经麻烦了抛出特定类型的异常。
您绝对可以做到。
您对如何做感到困惑吗? 还是只是想知道这是否是一种好习惯? 我认为这是一种好习惯。
自定义异常通常没问题,尤其是在这种情况下,您需要提供有关错误的更具体的信息。 注意事项:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.