简而言之,我正在努力实现这样的目标:
public class AssetParseException : Exception
{
public AssetParseException()
{
}
public AssetParseException( string message/*, int assetID*/ ): base(message)
{
}
}
理想情况下,这会给我这个功能:
catch (AssetParseException exception)
{
int idThatCausedIssue = exception.assetID;
}
我想要的额外信息是整数参数。我想在更高级别捕获AssetParseExceptions并知道哪个资产引发了异常。这可能吗?我是否需要将所有这些信息推送到邮件中,然后在更高级别解析它?
答案 0 :(得分:5)
只需添加:
public int AssetID {get; private set;}
到您的AssetParseException
课程,并在使用
AssetParseException(string message, int assetID):base(message)
{
AssetID = assetID;
}
我们一直这样做。知道有关异常的其他信息总是很好,为什么不把它放进去,因为你已经麻烦扔掉一个特定类型的异常。
答案 1 :(得分:3)
你绝对可以做到。
你对如何做到这一点感到困惑吗?或者只是想知道这是不是很好的做法?在我看来,这是一种很好的做法。
答案 2 :(得分:0)
自定义异常通常很好,尤其是在您提供有关错误的更具体信息的情况下。要记住的一些事情: