DRAKON.SU
https://forum.drakon.su/

Проблема с try-catch при построении DRAKON-блок-схемы
https://forum.drakon.su/viewtopic.php?f=62&t=6474
Страница 1 из 1

Автор:  Иван Енжаев [ Воскресенье, 31 Март, 2019 18:45 ]
Заголовок сообщения:  Проблема с try-catch при построении DRAKON-блок-схемы

Здравствуйте,

Недавно нашёл такой пример для начинающих Java программистов: https://habr.com/ru/post/441150/

Хочу понять, как можно упростить код, чтобы он был пригоден для DRAKON-блок-схем.

Посоветуете ли вы, во-первых, избавиться от бесконечного цикла, или его можно оставить?

Мои первые наброски: https://drakonhub.com/ide/doc/8observer8/7

Код:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;

public class HttpServer {

    public static void main(String[] args) {
        try (ServerSocket serverSocket = new ServerSocket(8080)) {
            System.out.println("Server started!");
           
            while (true) {
                // ожидаем подключения
                Socket socket = serverSocket.accept();
                System.out.println("Client connected!");

                // для подключившегося клиента открываем потоки
                // чтения и записи
                try (BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8));
                     PrintWriter output = new PrintWriter(socket.getOutputStream())) {

                    // ждем первой строки запроса
                    while (!input.ready()) ;

                    // считываем и печатаем все что было отправлено клиентом
                    System.out.println();
                    while (input.ready()) {
                        System.out.println(input.readLine());
                    }

                    // отправляем ответ
                    output.println("HTTP/1.1 200 OK");
                    output.println("Content-Type: text/html; charset=utf-8");
                    output.println();
                    output.println("<p>Привет всем!</p>");
                    output.flush();
                   
                    // по окончанию выполнения блока try-with-resources потоки,
                    // а вместе с ними и соединение будут закрыты
                    System.out.println("Client disconnected!");
                }
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

Автор:  Владимир Паронджанов [ Понедельник, 01 Апрель, 2019 09:41 ]
Заголовок сообщения:  Re: Проблема с try-catch при построении DRAKON-блок-схемы

Java try/catch/finally в языке ДРАКОН

Автор:  Иван Енжаев [ Понедельник, 01 Апрель, 2019 20:06 ]
Заголовок сообщения:  Re: Проблема с try-catch при построении DRAKON-блок-схемы

Меня очень сильно расстроила та тема. Столько разных подходов и мнений. А особенно расстроило это сообщение Степана Митькина. Я понимаю почему Степан предлагает такой вариант. Его DRAKON Editor поддерживает только такой способ, как он описал, то есть помещать все try-catch-finally в одну икону Действие, чтобы сгенерировать .java файл из редактора.

Это его скриншот найденный мною на зарубежном форуме в этой теме: Using DRAKON with python's try: except: exceptions

Вложения:
try_catch_python.png
try_catch_python.png [ 9.38 КБ | Просмотров: 6316 ]

Автор:  Владимир Паронджанов [ Понедельник, 01 Апрель, 2019 20:19 ]
Заголовок сообщения:  Re: Проблема с try-catch при построении DRAKON-блок-схемы

Иван, если вы не согласны с Митькиным, поспорьте с ним.

Заявите, что вы не согласны, аргументируйте вашу позицию и доказывайте, что ваше предложение не хуже или даже лучше

Автор:  Иван Енжаев [ Вторник, 02 Апрель, 2019 02:38 ]
Заголовок сообщения:  Re: Проблема с try-catch при построении DRAKON-блок-схемы

Тот человек, ссылку на хабр-статью и код которого я показал в первом сообщении - мой знакомый с КиберФорума. Он преподаватель. Я хотел его удивить и показать, как легко изобразить его код с помощью DRAKON-блок-схемы. Показать как легко студенты (начинающие программисты в Java) могут легко самостоятельно создавать свои блок схемы для Java программ. Я хотел показать на примере его программы. В результате я обескуражен. Получается, что программа из первого сообщения намного нагляднее, чем если её представить в виде DRAKON-блок-схемы. До этого я думал, что DRAKON однозначен, но если существует столько способов изобразить try-catch и нет единого подхода - это очень плохо. Я расстроен, что не могу изобразить однозначно тот пример для начинающих из первого сообщения. Почему нельзя было договориться, что этот вариант единственный верный и давайте его следовать? Нет, нужно было придумать 5-7 способов изображать try-catch, причём генератор кода Степана будет поддерживать только его способ изображения try-catch в одной иконе действия. А как же быть с вложенными try-catch? Весь код засовывать в одну икону Действие?

Автор:  Зуев Александр [ Среда, 05 Июнь, 2019 01:08 ]
Заголовок сообщения:  Re: Проблема с try-catch при построении DRAKON-блок-схемы

Так не лучше?

Вложения:
Screenshot_46.jpg
Screenshot_46.jpg [ 15.68 КБ | Просмотров: 6067 ]

Автор:  ibnteo [ Четверг, 25 Февраль, 2021 14:33 ]
Заголовок сообщения:  Re: Проблема с try-catch при построении DRAKON-блок-схемы

Для обработки ошибок нужны специальные иконы, предлагаю вот такие, причём иконы catch нанизать на линию, и case в switch сделать так же.

Вложения:
IMG_20210225_141418_863.jpg
IMG_20210225_141418_863.jpg [ 44.9 КБ | Просмотров: 4834 ]

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/