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

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

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

Я не знаком с 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 ответа


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

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


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