[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-core-predpolozhim-est-metod-kotoryy-mozhet-vybrosit-ioexception-i-filenotfoundexception-v-kakoy-posledovatelnosti-dolzhny-idti-bloki-catch-skolko-blokov-catch-budet-vypolneno":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":20,"progress":21,"seo":22},114,"predpolozhim-est-metod-kotoryy-mozhet-vybrosit-ioexception-i-filenotfoundexception-v-kakoy-posledovatelnosti-dolzhny-idti-bloki-catch-skolko-blokov-catch-budet-vypolneno",2,"java-core","Java Core","☕","Предположим, есть метод, который может выбросить `IOException` и `FileNotFoundException` в какой последовательности должны идти блоки `catch`? Сколько блоков `catch` будет выполнено?","Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок `catch(Exception ex) {}`, иначе все дальнейшие блоки `catch()` уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику `catch(Exception ex)`.\n\nТаким образом, исходя из факта, что `FileNotFoundException extends IOException` сначала нужно обработать `FileNotFoundException`, а затем уже `IOException`:\n\n```java\nvoid method() {\n    try {\n        \u002F\u002F...\n    } catch (FileNotFoundException ex) {\n        \u002F\u002F...\n    } catch (IOException ex) {\n        \u002F\u002F...\n    }\n}\n```","","junior",[15,16,17,18,19],"исключения","core","FileNotFoundException","IOException","catch",[],null,{"title":23,"description":24,"ogTitle":25,"ogDescription":26,"keywords":27,"schemaAnswer":32,"featuredSnippetReady":33},"Порядок блоков catch: IOException и FileNotFoundException — Gymterview","Сначала обрабатывается FileNotFoundException, затем IOException, так как FileNotFoundException наследует IOException. Выполняется только один блок catch.","Порядок блоков catch для IOException и FileNotFoundException — Gymterview","Сначала FileNotFoundException, затем IOException. Будет выполнен только один блок catch.",[28,18,17,29,15,30,31],"catch порядок","Java","иерархия","собеседование","Обрабатывать исключения нужно от «младшего» к старшему. Так как FileNotFoundException extends IOException, сначала нужно обработать FileNotFoundException, а затем IOException. Нельзя поставить в первый блок catch(Exception ex), иначе все дальнейшие блоки catch уже ничего не смогут обработать. Будет выполнен только один блок catch — тот, который первым соответствует типу выброшенного исключения.",true]