Exception 如何进一步提高或忘记异常
我如何在埃菲尔铁塔筹款?我有三箱Exception 如何进一步提高或忘记异常,exception,eiffel,design-by-contract,Exception,Eiffel,Design By Contract,我如何在埃菲尔铁塔筹款?我有三箱 我想重试 a_feature local l_retries_count: INTEGER do some_potential_failing_feature rescue if l_retries_count <= 3 then l_retries_count := l_retries_count + 1 retry e
a_feature
local
l_retries_count: INTEGER
do
some_potential_failing_feature
rescue
if l_retries_count <= 3 then
l_retries_count := l_retries_count + 1
retry
end
end
a_feature
do
some_potential_failing_feature
rescue
db_connection.close
send_email_to_admin
end
a_feature
local
l_retries_count: INTEGER
do
some_potential_failing_feature
rescue
if l_retries_count <= 3 then
l_retries_count := l_retries_count + 1
log_error ("Error, retrying for " + l_retries_count.out + "th time")
retry
else
db_connection.close
send_email_to_admin
-- raise the_created_exception_from_some_potential_failing_feature -- how do I do that?
end
end
a_功能
地方的
重试次数:整数
做
一些潜在的功能
营救
如果l_重试\u count,您可以尝试以下操作之一:
{EXCEPTION_MANAGER}.last_exception.original.raise
{EXCEPTION_MANAGER}.last_exception.cause.raise
{EXCEPTION_MANAGER}.last_exception.raise
第一个异常贯穿异常链,忽略因例程失败而触发的异常。它可能就是你要找的那个
接下来的两个函数将检索当前异常的原因或当前异常本身,但它可能不是您要查找的异常,因为它取决于异常的上下文和嵌套调用。您可以尝试以下操作之一:
{EXCEPTION_MANAGER}.last_exception.original.raise
{EXCEPTION_MANAGER}.last_exception.cause.raise
{EXCEPTION_MANAGER}.last_exception.raise
第一个异常贯穿异常链,忽略因例程失败而触发的异常。它可能就是你要找的那个
接下来的两个函数检索当前异常的原因或当前异常本身,尽管它可能不是您要查找的异常,因为它取决于异常的上下文和嵌套调用