2015-09-01 2 views
2

SAXException распространяется на SAXNotRecognizedException, SAXNotSupportedException.Обработка исключений: исключение родительского класса исключает также исключение ребенка

try { 
    //do Something 
} catch(SAXException e) {} 
    catch(ParserConfigurationException pce) {} 

если позволяет сказать, что «делать что-то» есть некоторый код, который бросает SAXNotRecognizedException or SAXNotSupportedException и если это произойдет, то ничего не должно произойти. Если выполняется SAXNotRecognizedException, ничего не произойдет с момента его пустого блока. Аналогично для ParserConfigurationException. Прямо сейчас, хотя я говорю ничего не делаю для ParserConfigurationException, тогда также возникает исключение для ParserConfigurationException.

Я в основном хочу ничего не делать, когда происходит SAXNotRecognizedException or SAXNotSupportedException.

+0

Что ж, с этим кодом ничего не произойдет, если вы поймаете SAXException (или подкласс). –

ответ

5

Да, родительские исключения также будут ловить детские исключения. Известный пример - когда вы ловите Исключение. Эта попытка блок будет ловить все виды (дочерние) исключения, такие как NullPointer и т.д.

1

Если вы хотите, чтобы поймать только SAXNotRecognizedException или SAXNotSupportedException, лучший способ сделать это, так как Java 7 является:

try { 
    // Do something 
} catch(SAXNotRecognizedException | SAXNotSupportedException e) { 
    // Do nothing 
} 

Примечание, другие SAXExceptions не будут пойманы.

Смежные вопросы