WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Архив » Как обработать исключение внутри метода, но при этом не прирывать обработку и вызовы других методов?

Как обработать исключение внутри метода, но при этом не прирывать обработку и вызовы других методов?


Дата публикации: 17-03-2013

Предложение от Vivek Pabby

Следующий кусок кода должен помочь:

// This is the calling method

public void yourCallingMethod()
{

// some code ........

try {
yourCalledMethod();
}
// This catch will catch the thrown exception from the called method

catch (IOException e1) {
showStatus("Caught thrown Exception : " + e1.getMessage() );
}
}

public void yourCalledMethod()
{
//
// The following try/catch block will catch IOException and throw it again
//
try {
DataInputStream din = new DataInputStream(
new BufferedInputStream(socket.getInputStream()));
DataOutputStream dout = new DataOutputStream(
new BufferedOutputStream(socket.getOutputStream()));
}
catch(IOException e) {
showStatus("Exception caught: " + e.getMessage() );
//
// By throwing the exceptiuon again, you can have the calling method catch it.
//
throw e;
}
}


2. Как определить границы исключений, которые защитят весь код?

Предложение от Vivek Pabby

Любой код в блоке try-catch передаст ичключение этому блоку. Если вы поместите весь ваш код в главный блок try-catch вы можете перехватить любое непойманное исключение от этого кода, вот пример:


try {
// put all your code here
// this code can also have its own try-catch blocks
// making it a nested try-catch situation
try {
// more code .......
} catch (anyExceptionYouLike e) {}
// more code.......
}
// This catch will catch any exceptions in all your blocked code which are not
// caught by any inner try-catch blocks
catch (ArrayIndexOutOfBounds ex) {
showStatus("Exception : " + ex.getMessage() );
}
catch (IOException e1) {
showStatus("Exception : " + e1.getMessage() );
} catch (Exception e2) { }
}
Вы так же можете создавать свои собственные исключения с определенными сообщениями и обрабатывать и ловить их .

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Март 2017 (1)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта

Хотите продать свой сайт?
- Мы быстро и удобно для Вас сможем его купить:
  • Заявка на продажу сайта
  • Раcсматриваем цены на каждый сайт в индивидуальном порядке.

    Дорожный гранитный бордюр

    Тротуарные, Дорожные, Садовые бордюры. Выбор. Выгодные цены

    mygranit.ru


    Случайная цитата

    Неизвестный автор:

    "Долг платежом красен, а сайт контентом прекрасен."

    Опрос

    Какими социальными сетями Вы пользуетесь?

    Vkontakte.ru
    Одноклассники
    Мой Мир - mail.ru
    Google Plus
    Facebook
    ЖЖ
    Другие
    Не пользуюсь