在我的框架中,我向用户公开了一个方法,它引发了一个自定义异常并在框架中处理它,如果引发的话。 但是在使用我的方法时,用户使用了泛型catch块(Exception或except),因此它没有按预期处理。
我有什么方法可以解决这个问题, i)使我的自定义异常绕过泛区除了块(或仅被我的自定义除了块捕获)。 ii)遇到条件时直接将流程返回test_driver。
注意:我不能限制用户使用通用catch块。
答案 0 :(得分:0)
不,没有办法绕过try ... except
。可以抛出的每个异常也可以通过except
捕获。这就是异常处理的全部要点。
尝试绕过异常处理程序不是正确的解决方案。如果您的用户捕获了您的异常,那么您无能为力。以这种方式看待它:用户发现了一个他不应该抓住的异常。这是用户代码中的错误。处理错误的正确方法是修复它们,而不是试图绕过它们。对此问题采取任何行动都不是您的责任 - 用户有责任修复该错误。