Всякий раз, когда я создаю большой проект Mathematica, я сталкиваюсь с этой проблемой: Предотвращение лавины ошибок времени выполнения в Mathematica, то есть сообщение об ошибке Mathematica непрозрачно, архаично и легионно.
Идея состоит в том, чтобы отключить все собственные сообщения об ошибках Mathematica и реализовать проверки типов и сообщения об ошибках в каждой функции и модуле. Однако я не нашел простой и эффективный способ сделать это, и в конечном итоге, например, некоторая функция, генерирующая функцию 20, вызывает глубокие функции, а затем полностью передает каскад сообщений об ошибках вплоть до основной процедуры.
Как бы вы создали простой механизм для этого, который генерирует только одно сообщение об ошибке в функции, которая испытывает ошибку и простой список цепочки вызовов функций?
EDIT:. Он появился в нескольких ответах; Я специально ищу что-то легкое относительно результата, который он производит (иначе я мог бы просто придерживаться сообщений об ошибках Mathematica) и, очевидно, также был бы легким в вычислительных накладных расходах. Таким образом, хотя Stack
и Trace
, безусловно, легки на накладных расходах, их вывод в сложных проектах не является быстрым для синтаксического анализа, а некоторые работы необходимо упростить.