【发布时间】:2016-11-16 15:30:41
【问题描述】:
我抓住了Exception。
如果这是一个特定的错误,我想做点什么。我可以很容易地用字符串识别它。
但是我想知道是否有更清洁的方法可以做到这一点。例如,当我为异常创建自己的包装器时,我会添加一个索引。
默认异常中有这样的东西吗?
我使用的引发错误的函数是RemoteWebDriver(硒对象)的实例化。但是,我不需要针对该课程的特定答案。
更准确地说,我发现了以下错误:OpenQA.Selenium.WebDriverException。
但是,如果在创建驱动程序时超时或关闭了 js 文件,则可能会抛出它。他们保存了HResult。
所以我看不出除了检查字符串之外没有办法区分它们......
【问题讨论】:
-
您想捕捉
Exception的特定子类吗?还是有特定信息的? -
嗯,很模糊。首先不要捕获异常,而是更喜欢派生类。其中一些具有数字错误代码以区分更具体的错误。基类也有 HResult 属性。没有更多上下文...
-
你可以
catch (SomeSubClassOfException),或者在C# 6中,你可以使用exception filters。 -
我想要一个带有特定信息的。关于我使用这个的子类,但是超过 1 条消息与同一个子类相关联......所以我仍然需要检查子字符串。 HResult 属性,我会调查的,谢谢
-
@CherrysaHerrim 通过消息过滤异常是您代码中的一个重大设计缺陷!