Почему я получаю этот вывод при обработке исключений в Java - PullRequest
0 голосов
/ 15 декабря 2018

Кто-нибудь может мне объяснить, что здесь происходит?Вывод, который я получаю,

Общее исключение поймано

public class TestingString {
    static void testCode() throws MyOwnException {
        try {
            throw new MyOwnException("test exception");
        } catch (Exception ex) {
            System.out.print(" generic exception caught ");
        }
    }
    public static void main(String[] args) {
        try {
            testCode();
        } catch (MyOwnException ex) {
            System.out.print("custom exception handling");
        }
    }

}

class MyOwnException extends Exception {
    public MyOwnException(String msg) {
        super(msg);
    }
}

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Вы бросаете объект MyOwnException в методе testCode(), который немедленно перехватывается catch (Exception ex), что является причиной того, что System.out.print(" generic exception caught "); исполняется, что в итоге приводит к выводу.

0 голосов
/ 15 декабря 2018

, если вы хотите получить вывод custom exception handling.Вы должны выбросить исключение в testCode, например,

public class TestingString {
    static void testCode() throws MyOwnException {
        try {
            throw new MyOwnException("test exception");
        } catch (Exception ex) {
            System.out.print(" generic exception caught ");
            // throw the exception!
            throw ex;
        }
    }
    public static void main(String[] args) {
        try {
            testCode();
        } catch (MyOwnException ex) {
           System.out.print("custom exception handling");
        }
    }
}

class MyOwnException extends Exception {
    public MyOwnException(String msg) {
        super(msg);
    }
}

, когда вы поймаете исключение, вы можете выбросить его снова.В исходном коде вы не выкидываете исключение, поэтому вы получили только одно сообщение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...