For some reason, if an method is called via invoke(), uncaught exceptions it throws do not cause a crash. However, it does exit the method. Does invoke run it another thread (because exceptions just crash the thread, right?), and if so is there a way to send the exception up or something?
Here is a simple example:
import java.lang.reflect.InvocationTargetException;
public class Main {
    public static void main(String[] args) {
        try {
            Class.forName("Main").getMethod("thrower").invoke(null);
        }
        catch (IllegalAccessException e) {}
        catch (IllegalArgumentException e) {}
        catch (ClassNotFoundException e) {}
        catch (NoSuchMethodException e) {}
        catch (InvocationTargetException e) {}
        catch (SecurityException e) {}
    }
    public static void thrower() {
        throw new RuntimeException();
    }
}
 
Aucun commentaire:
Enregistrer un commentaire