На счёт "надо код от юзера исполнять" - это просто созданный мною пример, дабы всем было понятно, что попасть в программу может что угодно. На самом деле никакой юзер кидать код не будет. Все выглядит следующим образом:
У меня есть прога на Perl-е, питухоне или js-е (любой интерпретируемый ЯП). Пусть будет "
program.pl" (программа именно однофайловая). Я хочу показать работу программы другу Алёше, но не хочу, чтобы он видел код (компилировать что либо в .exe-шник абсолютный не вариант, так как, компиляция того же питухона через pyinstaller декомпилируется без единой капли пота). Для этой задачи, я беру некоторую программу, назовём её hlaunch (сокр. "hidden launch" или "скрытый запуск"), и с помощью неё шифрую файл "
program.pl" (на выход получаю "program.enc"). Далее, кидаю Алёше получившийся файл и hlaunch. Он, в свою очередь, получив "program.enc" и программу шифрования, запускает последнюю указав ключ и название шифрованного файла (ключ, ясное дело, я ему сообщаю). После запуска, hlaunch дешифрует "program.enc" и передаёт дешифрованный код в качестве аргумента в какой либо интерпретатор. В случае с Perl-ом это будет:
perl -E "&"
P.S. & - место, куда будет вставлен дешифрованный код.
Таким образом, человек получит рабочую программу, но сам код увидеть не сможет.
Вот тут мы и подошли к самой сути игнорирования всевозможных ошибок:
Как вы знаете, довольно часто error-ы швыряют в консоль output вместе с той строкой кода, в которой была допущена ошибка. То есть, это, хоть и сильно обрезанное, но палево. А мне, как вы поняли из предыдущих разглагольствований, не желательно, чтобы код узрел глаз человека (кроме меня, конечно). Вот и вся причина, по которой я ищу способы полного игнорирования любых ошибок вообще, чтобы, вместо палевного error message-а, выкидывать что-то типа "an error was found in the code".
Кто-то из чата:
- "Но, тебе просто нужно не допускать ошибок в коде, тестировать его перед шифрованием и тп, тогда не возникнет ошибок у Алёши и он ничего не увидит!"
На что я отвечу:
- "Ты прав, но, Алёша, хитрожопый сукин сын, может специально накидать в некоторые места шифрованного файла всякую невнятную хрень, чтобы интерпретатор выкинул в этом месте ошибку. Таким образом, он сможет пройти по всему program.enc и по порядку расставлять ошибки, получая дешифрованный код."
Вот так вот весело получается:
* научится игнорировать всевозможные ошибки
или
* начать придумывать новый вариант "как избежать появления кода в консоли вместе с error message".
Отношусь ли я серьезно к подобной задумке? Да. Отношусь ли я серьезно к моей реализации? Не смешите) Мне просто скучно живется :D