Возможно ли генерировать исключение времени выполнения при назначении пустой ссылки в Java? - PullRequest
0 голосов
/ 17 мая 2019

Я принимаю участие в задании по обратному инжинирингу в Java, так как я хотел узнать больше о запутывании за пределами .NET land.

У меня есть некоторый деобфусцированный исходный код, и моя цель состоит в том, чтобы отделить наворот от реального кода в большом приложении и ответить на ряд вопросов о приложении.

Я не знаком с Java, и мне интересно, возможно ли для этого метода генерировать исключение времени выполнения во время выполнения. Я не могу представить, что весь метод состоит в том, чтобы просто присвоить что-либо значение null, но я не смог найти что-либо об этом в Интернете, чтобы подтвердить то или иное.

public static void SomeMethod() {
    try {
        someObject_1 = null;
        someObject_2 = null;
        someObjectArray1 = null;
        intArray1 = null;
        shortArray1 = null;
        //...etc
    } catch (RuntimeException runtimeexception) {
        // Attempt at hiding stack traces when I break things I assume
        // These are littered everywhere, with a unique identifier
        // and arguments in the parentheses if method has args
        //
        throw SomeClass_SubClass_SubClass.someExceptionFactory(runtimeexception, "f.C()");
    }
}

Где someExceptionFactory переносит выброшенное исключение в класс, расширяющий RuntimeException.

Ответы [ 2 ]

0 голосов
/ 17 мая 2019

Нет, невозможно, если остальные операторы являются присваиваниями null переменных.

Этот код не может выдавать никаких исключений.

0 голосов
/ 17 мая 2019

Вы должны предоставить больше информации о коде, который вы не показывали, и контексте. Но если предположить, что единственным кодом внутри блока try являются нулевые присваивания полям класса (переменные не объявляются внутри тела метода), сам метод не вызовет исключение RuntimeException.

...