【发布时间】:2017-05-24 11:28:25
【问题描述】:
我正在用 f2py 为 python 编写一个 fortran 函数。在某种情况下,我想终止程序并返回我的输出而不会出错。不幸的是,停止程序会因错误而停止,因此,当我在 python 中调用该函数时,整个脚本都会停止。
我现在的做法是在我的函数的主循环中放置一个条件退出,如下所示:
SUBROUTINE func(x)
...
do j1=1,N_steps
if (condition) then
exit
end if
end do
end subroutine
然而,缺点是如果条件不满足,它会在每次迭代时检查它。条件在循环中不会改变。我更喜欢这样的东西
SUBROUTINE func(x)
...
if (condition) then
stop
end if
do j1=1,N_steps
...
end do
end subroutine
但随后函数确实因错误而停止。
【问题讨论】:
-
错误信息是什么?
-
不管我放什么。如果我把 stop 0 错误信息是 0
-
啊,对.. 但是错误是如何传播到 Python 的?你得到一个异常还是终止进程?
-
它终止了进程,这是我的问题,因为我无法捕捉到它。