相关疑难解决方法(0)

一次捕获多个异常?

不鼓励简单地抓住System.Exception.相反,只应捕获"已知"异常.

现在,这有时会导致不必要的重复代码,例如:

try
{
    WebId = new Guid(queryString["web"]);
}
catch (FormatException)
{
    WebId = Guid.Empty;
}
catch (OverflowException)
{
    WebId = Guid.Empty;
}
Run Code Online (Sandbox Code Playgroud)

我想知道:有没有办法捕获两个异常并且只WebId = Guid.Empty调用一次呼叫?

给出的例子相当简单,因为它只是一个GUID.但是想象一下你多次修改一个对象的代码,如果其中一个操作以预期的方式失败,你想要"重置"它object.但是,如果出现意外异常,我仍然希望将其提高.

.net c# exception-handling exception

2015
推荐指数
24
解决办法
52万
查看次数

如何| (管)在模式匹配工作?

你可以写:

str match { case "foo" | "bar" => ... }
Run Code Online (Sandbox Code Playgroud)

乍一看,它看起来|可能是一个提取器对象,但是:

str match { case |("foo", "bar") => ... }
Run Code Online (Sandbox Code Playgroud)

不起作用.(我无法看到无论如何都可以实现.)

那么它是一个神奇的内置运营商?

(我相信我之前已经在SO上看过这个问题了,但是找不到......)

scala pattern-matching

33
推荐指数
2
解决办法
5561
查看次数