Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 28.08.2017, 20:29   #1
Alexmur07
Форумчанин
 
Регистрация: 20.11.2008
Адрес: Новосибирская область
Сообщений: 85
Репутация: 10
Вопрос зачем в данном случае использовалась throws Exception

Код:

package com.company;

public class Main {

    public static void main(String[] args) throws Exception {
        System.out.println(min(1, 2, 3));
        System.out.println(min(-1, -2, -3));
        System.out.println(min(3, 5, 3));
        System.out.println(min(10, 5, 10));
    }

    public static int min (int a, int b, int c) {
        int m;
        if (a<b && a<c)
            m=a;
        else if (b<a && b<c)
            m=b;
        else m=c;
        return m;

}
}

объясните не пальцах её значение? а то не много не понятно... когда я стёр throws Exception ничего не изменилось программа также выполнилась. погуглил там рассказывается про какие то исключительные ситуации и ошибки, разьясните для тупых
__________________
Разгон – вещь не определённая,
по этому конечный результат зависит от конкретного чипа (CPU или GPU а также моста), качества охлаждения и везения.
Alexmur07 вне форума   Ответить с цитированием
Старый 28.08.2017, 20:38   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 15,790
Репутация: 3110

icq: 512-765
skype: alexp.frl
По умолчанию

Либо результат ленивого копипаста, либо автор сам не в курсе зачем оно.
Alex11223 на форуме   Ответить с цитированием
Старый 28.08.2017, 22:36   #3
Alexmur07
Форумчанин
 
Регистрация: 20.11.2008
Адрес: Новосибирская область
Сообщений: 85
Репутация: 10
По умолчанию

Код:

package com.javarush.task.task02.task0216;

/* 
Минимум трёх чисел
*/
public class Solution {
    public static int min(int a, int b, int c) {
        int m;
        if (a<b && a<c)
        m=a;
        else if (b<a && b<c)
        m=b;
        else m=c;
        return m;
    }

    public static void main(String[] args) throws Exception {
        System.out.println(min(1, 2, 3));
        System.out.println(min(-1, -2, -3));
        System.out.println(min(3, 5, 3));
        System.out.println(min(10, 5, 10));
    }

}

а может если функция майн пишется в конце то тогда ставится throws Exception?
__________________
Разгон – вещь не определённая,
по этому конечный результат зависит от конкретного чипа (CPU или GPU а также моста), качества охлаждения и везения.
Alexmur07 вне форума   Ответить с цитированием
Старый 28.08.2017, 22:36   #4
Alexmur07
Форумчанин
 
Регистрация: 20.11.2008
Адрес: Новосибирская область
Сообщений: 85
Репутация: 10
По умолчанию

на что она должна влиять эта команда ?
__________________
Разгон – вещь не определённая,
по этому конечный результат зависит от конкретного чипа (CPU или GPU а также моста), качества охлаждения и везения.
Alexmur07 вне форума   Ответить с цитированием
Старый 28.08.2017, 22:56   #5
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 15,790
Репутация: 3110

icq: 512-765
skype: alexp.frl
По умолчанию

В гугле забанили что ли? Почитайте про исключения (exceptions) и checked/unchecked exceptions.

Второе это фича Java (со спорной полезностью): некоторые типы исключений в Java нельзя "пропускать" (то есть ничего не делать разрешая им просто распространяться дальше наружу), надо либо поймать (try-catch), либо добавить throws тип_исключения (Exception это базовый класс всех исключений) в метод чтоб разрешить пропускать их наружу.

В данном коде исключение не может возникнуть, поэтому ни на что не влияет.

Последний раз редактировалось Alex11223; 28.08.2017 в 22:59.
Alex11223 на форуме   Ответить с цитированием
Старый 24.12.2017, 20:30   #6
sameuser
Пользователь
 
Регистрация: 22.12.2016
Сообщений: 22
Репутация: 10
По умолчанию

Привет! Решил не поднимать новую тему, спрошу здесь.
Допустим, пишем мы что-нибудь по сокетам..

Код:

public class Main
{
    static final int port = 44444;

    public static void main(String[] args) throws IOException
    {
        ServerSocket servSock = new ServerSocket(port);
        System.out.println("Server Started at port: " + port);

        while (true)
        {
            Socket socket = servSock.accept();          // Ждем новое подключение
            System.out.println("New client connected.");

            new ServerSingle(socket);   // Запускаем отдельный поток на обработку
        }
    }
}

Подобный код может выбрасывать множество исключений..
Поправьте, если ошибся. Или дополните Хотел проверить свое понимание обработки исключений.

Поимка и обработка исключений может быть выполнена 2 способами:

а) мы можем один раз указать, например, throws Exception напротив какого-либо метода или группы строчек кода и весь остальной код писать как есть
б) мы можем каждый раз оборачивать блоком try\catch именно тот код, который может бросить исключение ( например, 1 строку: ServerSocket servSock = new ServerSocket(port); )

В первом случае удобство в том, что не нужно подробно вникать в виды исключений, экономится время. Но при возникновении исключения, если у нас программа уже где-то используется, до конечного пользователя трудно будет донести суть этой ошибки.. Мы можем вывести ему "что-то пошло не так" и дополнить это с помощью e.printStackTrace();

А во втором случае мы можем точнее сказать, где и что произошло - таймаут, например. Этот способ может предоставить больше полезной информации пользователю программы, с ним легче будет искать и понимать ошибки на стороне разработчика.
sameuser вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ребята помогите определить что использовалась на данном сайте. Ledtaet Общие вопросы Web 2 05.06.2017 10:25
Что в данном случае является компонентом Lama Under Cover Общие вопросы по Java, Java SE, Kotlin 0 05.12.2016 19:04
Правильно ли я экранирую переменную js в данном случае? Illusiony PHP 1 25.04.2016 21:27
нужен ли RAII в данном случае pproger Общие вопросы C/C++ 3 01.12.2012 20:15
Непонятно: зачем делать декларацию функции в данном случае? Oleg_SK Общие вопросы C/C++ 0 17.07.2010 09:36


21:22.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru