Я вызываю функцию fit_circle
, которая может или не может вызвать процедуру MESSAGE
. fit_circle
вызывает функцию poly_fit
, которая может вызывать процедуру MESSAGE
, но также иногда производит математическую ошибку (я ничего не могу с этим поделать).Как правильно реализовать обработку ошибок?
Можно ли обработать обработчик ошибок, который позаботится обо всех этих сценариях, не возвращаясь к интерактивной подсказке? Я пробовал следующее:
FUNCTION arb_funct,circular_data
CATCH, ERROR
IF ERROR NE 0 THEN BEGIN
CATCH, /CANCEL
print, 'An Error Occured'
return, []
ENDIF
circle_fit_result = fit_circle(circular_data)
return, circle_fit_result
END
Однако обработчик ошибок никогда не запускается. documentation только упоминает поиск обработчиков ошибок, определенных в процедурах.
Не могли бы вы показать код 'FIT_CIRCLE'? – mgalloy
Не могли бы вы добавить трассировку стека (сообщения об ошибках), которые отображаются, когда программа не выполняет MAIN? –