![]() |
1
5
异常不应用于验证。基本上,一般情况下不应该遍历堆栈进行验证。 从根本上说,你所做的是: X是顶级的,可以处理一切。x调用y.y调用z.z执行验证并在此之后执行操作,如果验证失败则引发异常。 你应该做的是:
x调用y.y调用v,x.v执行验证并返回基于该对象是否有效的结果。如果v说那东西是无效的,y就不能给x打电话。y将无效或成功的结果传播给x。x做它应该做的事情。
但如果你真的想这么做的话。你应该用
|
![]() |
2
1
我认为您不能举多个异常,它会引发它发现的第一个异常,如果存在多个异常,它将被最内层的救援语句捕获,或者取决于您所引发的异常类型和救援类型。 |
![]() |
3
1
在我意识到的任何语言中都没有这样的概念。 可以连续引发单个异常,但不能同时引发多个异常,即使在多个线程上“同时”引发,也仍然是在不同的控制流上引发的单个异常。 当引发异常时,控制流将转到该异常。你有两个选择:做点什么,或者崩溃。没有第三个选项,也没有单独的控制流弹出并继续,直到相应地处理此异常。 如果你想看到你在评论中所说的多次失败,那么你仍然会一次一次地失败,就像他们是如何被提出的一样。异常被引发,您可以检查、记录、执行任何操作、抑制它,并查看下一个异常是否因其他原因被引发。 如果您询问如何引发多个未处理的异常,那么这真的没有意义。这就好比问如何同时在两个地方。 |
![]() |
George Alexander · 类似电报的用户名的Regex 1 年前 |
![]() |
Aliaksei · 保存前进行WebFlux检查 3 年前 |
![]() |
Nimet · 如何在regex密码模式中转义* 3 年前 |
![]() |
Jee · PowerShell输入验证-输入不应为所有数字 7 年前 |
![]() |
James · Django使用RangeWidget验证表单 7 年前 |