1
5
异常不应用于验证。基本上,一般情况下不应该遍历堆栈进行验证。 从根本上说,你所做的是: X是顶级的,可以处理一切。x调用y.y调用z.z执行验证并在此之后执行操作,如果验证失败则引发异常。 你应该做的是:
x调用y.y调用v,x.v执行验证并返回基于该对象是否有效的结果。如果v说那东西是无效的,y就不能给x打电话。y将无效或成功的结果传播给x。x做它应该做的事情。
但如果你真的想这么做的话。你应该用
|
2
1
我认为您不能举多个异常,它会引发它发现的第一个异常,如果存在多个异常,它将被最内层的救援语句捕获,或者取决于您所引发的异常类型和救援类型。 |
3
1
在我意识到的任何语言中都没有这样的概念。 可以连续引发单个异常,但不能同时引发多个异常,即使在多个线程上“同时”引发,也仍然是在不同的控制流上引发的单个异常。 当引发异常时,控制流将转到该异常。你有两个选择:做点什么,或者崩溃。没有第三个选项,也没有单独的控制流弹出并继续,直到相应地处理此异常。 如果你想看到你在评论中所说的多次失败,那么你仍然会一次一次地失败,就像他们是如何被提出的一样。异常被引发,您可以检查、记录、执行任何操作、抑制它,并查看下一个异常是否因其他原因被引发。 如果您询问如何引发多个未处理的异常,那么这真的没有意义。这就好比问如何同时在两个地方。 |
Stilian · 存储库设置中没有Github页面部分 2 年前 |
Kellen · 查看$卷展栏功能列表 2 年前 |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 2 年前 |
johncssjs · 将数组转换为每个元素的嵌套哈希 2 年前 |
solidsnake99 · Rails db:如何绕过验证 2 年前 |