powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Использование "try-catch" или "throws"
8 сообщений из 8, страница 1 из 1
Использование "try-catch" или "throws"
    #38475673
alex021
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Возник вопрос, который кому-нибудь обязательно покажется банальным, но все же я прошу помощи и разъяснения.

Суть: при обработке исключений когда использовать конструкцию try-catch, а когда throws?

Я понимаю так:
1)когда необходимо обработать небольшой локальный кусочек кода, например, находящегося где-нибудь в методе, то используем "try-catch";
2) когда же ошибка возникает непосредственно в ходе выполнения метода, то выбрасываем ее за счет "throws".

Заранее благодарю за потраченное Вами время.
...
Рейтинг: 0 / 0
Использование "try-catch" или "throws"
    #38475678
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex021,

throws - обработка исключения переносится на "уровень выше" (напр., ошибки входных
параметров и вообще, где подразумевается, что перехват исключений будет на другом уровне (в библиотеках))

try-catch - непосредственно в коде. Можно перехватить и обработать на месте.
Либо сделать "проброс дальше" обернув в нужный Вам *Exception (тогда уже вместе со throws).

Ссылки:
http://en.wikibooks.org/wiki/Java_Programming/Throwing_and_Catching_Exceptions
...
Рейтинг: 0 / 0
Использование "try-catch" или "throws"
    #38475689
alex021
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Usman,

Спасибо огромное! Стало действительно понятней!
...
Рейтинг: 0 / 0
Использование "try-catch" или "throws"
    #38475694
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex021, обработка исключений - вопрос договорённостей между разработчиками
еще на этапе проектирования. Оба варианта (1) и (2) одинаково хороши только
во втором случае когда мы помечаем метод как throws мы снимаем с себя отвественность
за ошибки определённого рода (например IO или Network) и даём возможность верхнему
уровню принять решение что делать.
...
Рейтинг: 0 / 0
Использование "try-catch" или "throws"
    #38475750
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex021Доброго времени суток!
Возник вопрос, который кому-нибудь обязательно покажется банальным, но все же я прошу помощи и разъяснения.

Суть: при обработке исключений когда использовать конструкцию try-catch, а когда throws?


Если функция обрабатывает исключение -- try-catch, если выбрасывает -- throws.
Всё просто.
...
Рейтинг: 0 / 0
Использование "try-catch" или "throws"
    #38476026
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
общее правило: обрабатывать исключение надо на том уровне, где известно что с ним делать. И категорически не рекомендуется делать это ниже -- это только портить жизнь себе и остальным.

Допустим, у вас есть автомобиль. Вы ему говорите "едь в Киев". А у него нет бензина и он брасоает исключение. Автомобиль сам не может обработать исключение, значит throws, дальше исключение передается водителю. Водитель может его обработать? Да, водитель может - или канстру в руки и шагай на бензоколонку, или покупай билет на поезд, самолет или отмени поездку. В зависимоти от. Все эти зависимоти известны водителю а не автомобилю, поэтому это исключение обрабатывать должен водитель и он решает че дальше делать.

В некоторых случаях вообще нет уровня, на котором известно что делать с исключением. В этом случае можно даже выходить из программы - пускай пользователь разбирается в чем дело и чинит. Поэтому, обычно действие по умолчанию при получении исключения - распечатать стек максимально подробно. Например, программа хочет скачать из интернета файл, а интернета нет. Что делать? Ответ вываливаться. Пусть это исключение обрабатывается на уровне пользователя программы. Пользователь или воткнет шнурок или пойдет заплатит за следующий месяц, или еще что-нибудь. В любом случае, программа не может этого знать и данная проблема ей не подвласна.

То есть вся суть исключений в том, что это сигнал об ошибке, которая не может быть решена на уровне где она возникла.
...
Рейтинг: 0 / 0
Использование "try-catch" или "throws"
    #38582607
stut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читал что "тровс" ставится после сигнатуры метода в теле которого может быть брошено исключение. Есть ли это обязательным условием для использование исключений в методе? И что значит может быть брошено. То есть в методе может не быть ключевого слова "троу"? Как тогда теоретически определить что оно может быть но его нету, и если его нету (видел пример) для чего слово "тровс" после сигнатуры. И вообще- в C++-такой конструкции нету. А джаве для чего она в общем то более простой язык? Не знаю есть ли это слово в шарпе
...
Рейтинг: 0 / 0
Использование "try-catch" или "throws"
    #38582612
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
stutЧитал что "тровс" ставится после сигнатуры метода в теле которого может быть брошено исключение. Есть ли это обязательным условием для использование исключений в методе? И что значит может быть брошено. То есть в методе может не быть ключевого слова "троу"? Как тогда теоретически определить что оно может быть но его нету, и если его нету (видел пример) для чего слово "тровс" после сигнатуры. И вообще- в C++-такой конструкции нету. А джаве для чего она в общем то более простой язык? Не знаю есть ли это слово в шарпе

ну как бы почитать про исключения в джаве для начала не плохо было бы.

в шарпе нету такого.

ну и насчёт простого и сложного..... ну фиг знает. Скорее более продвинутый и больше написанного уже кода.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Использование "try-catch" или "throws"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]