![]() |
1
5
有几种方法可以解决这个问题。第一个是我的偏好,如果你不需要知道什么是例外。
在某些情况下,您可以在没有额外变量的情况下执行同样的操作,这取决于测试块所做的操作。 第二个选择是黑客,但也有效。
stop(throwable t)方法不会停止线程,而是导致线程以未经检查的方式抛出异常。 您可以使用unsafe.throwexception()来进行一些修改,但有一种方法可以使用我已经忘记的泛型。 |
![]() |
2
1
如果您担心会发生未初始化的情况,那么您可能只想将该代码放入finally块中,因为,如果应该在某个点调用它,那么您可能应该始终清理。
我不太会抓到
但是,你没有表现出
您可能希望编写一个单元测试,尝试不同类型的异常,并查看预期的工作或不工作,这样您就可以记录预期的行为。 |
![]() |
3
1
另一种选择是拥有一个工厂,该工厂仅在原因是选中的异常时创建异常:
我在方法中放入返回值的原因是客户端可以这样做:
这样,如果方法具有返回类型,编译器就被愚弄成不需要在catch语句之后返回,但如果客户端忘记在调用factory方法之前放置throw,编译器仍然抛出异常。 与代码相比,这种方法的缺点是可移植性较差(它适用于某个异常,但不适用于某个其他异常),但这可能没问题,因为对于需要进行撤消初始化的每个异常类型,它都不适用。 如果它适合您的用例,您可以将未检查的调用放入someexception的构造函数中,并使逻辑可用于所有子类,但这必须适合您的特定项目-在一般情况下,这不是一个好主意,因为它会阻止包装运行时异常。
|
|
lfox · 如果列中不存在某个值,则停止代码执行 2 年前 |
![]() |
zaen · 将值传递到异常字符串消息中 2 年前 |
![]() |
Zephyr · 如何在双ListView选择系统上实现过滤器? 6 年前 |
![]() |
Aave · 错误数组长度的特定异常 6 年前 |