Я хочу отключить трассировку стека, генерируемую при возникновении исключения.
Я использовал,
Runtime.getRuntime().traceInstructions(false);
Runtime.getRuntime().traceMethodCalls(false);
но все же я мог видеть, как генерируется след. Как ты можешь это сделать? Также мне нужно определить, отлаживает ли кто-нибудь мой класс.
Я хочу отключить все трассировки исключений. Я не могу использовать запутывание, так как мой продукт - SDK, который будет использоваться в разработке. Я также предлагаю Runtime, который используется, когда люди хотят развернуть свои приложения, созданные с использованием моего SDK. Мое требование состоит в том, чтобы любой, кто использует мои jar-файлы времени выполнения, не мог отлаживать написанный код ... или, по крайней мере, я затрудню отладку, избегая генерации трассировки стека из моих jar-файлов времени выполнения.
Один способ, который я нашел, состоит в том, что все исключения, которые происходят из моих jar-файлов времени выполнения, я просто ловил их и устанавливал пустой массив StackTraceElement на объекте исключения и перебрасывал его ...
Почему такое требование?
Предположим, вы разрабатываете приложение с использованием моего SDK (файлы jar SDK не могут поставляться в комплекте с вашим приложением. Я ограничил его, и это окончательно :) !!) Теперь для запуска приложения на компьютере вашего клиента вам (или клиенту) необходимо установить Запустите на компьютере клиента и запустите ваше приложение. А что если ваш клиент начнет разрабатывать свои собственные приложения, используя мои jar-файлы Runtime !! Это угроза для моего бизнеса .... Вот почему ужасное требование.
Зачем отключать трассировку стека?
Отключив генерацию трассировки стека или генерацию трассировки вызова метода, я хотел усложнить разработку кода с помощью jar-файлов времени выполнения, и именно поэтому я начал свой вопрос таким образом ... предлагаю другое решение для достижения такого требования ...