|
其实这个问题,我很久之前在别人的帖子里问过,但是这次还是想问一次
问题是这样的,我们写的很多子进程或者函数可能会碰到输入参数不合适导致计算错误的
例如一个计算逆矩阵的子进程,碰到了输入是一个奇异矩阵
这里标准的方法当然是说你参数里就给一个错误代号,在子进程里碰到异常就给错误代号赋值然后结束
但是大家可以看到,这种方法一旦子进程多层嵌套,你就不得不一层层上抛错误代号,而且子进程调用看起来也会很累赘
所以我一度写代码的时候,碰到这种完全无法计算的异常的时候,我会直接写STOP或者ERROR STOP语句
不过我看查普曼的书,一直很反对这样的写法
因此我就想问,在fortran里有没有既能把子进程写的简单利落,又能捕捉到极少数这种异常的办法
就像python或matlab做矩阵求逆之类的函数也不会搞的那么累赘啊
曾经有位大佬似乎回复过我,说对这种问题主流的办法是类似于python的 try...exception... 的写法
当然他说的似乎是C或者C++的说法,和我写的形式不一致,但意思应该差不多
那么在fortran里有没有这样的机制或者办法呢?
|
|