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