«Что делать, менеджер?»
«Что значит, что делать, мы должны исправить эту ошибку».
«Но протокола ошибок нет...»
«Я даже не знаю. Давайте подумаем».
Менеджер Чхве сел на свое место и повернул свой включенный ноутбук. Молчание повисло в офисе.
Спустя час менеджер Чхве позвал Ёнхо.
«Эй, г-н Ёнхо».
«Да, сэр».
«Чем вы занимаетесь сейчас?»
«Я сейчас выполняю задачу, которую дал мне помощник менеджера Ким».
«Это срочно?»
«Н... Наверное, нет».
«Тогда ты не мог бы помочь нам?»
Сегодня было воскресенье. Им необходимо было восстановить программу, чтобы завтра Совет директоров мог посмотреть текущее состояние продаж. Если программа ETL не заработает, данные по продажам посмотреть не удастся.
Это означает, что Совет директоров не сможет подтвердить текущее состояние продаж. Если проблема не буде решена вовремя, компания-заказчик будет очень недовольна. Возможно, потому, что менеджер Чхве был под большим давлением, он даже попросил Ёнхо помочь.
«Д... Да, сэр».
Ёнхо подошел к помощнику Паку и спросил.
«Помощник менеджера, чем я могу помочь?»
После его вопроса помощник Пак сказал менеджеру Чхве.
«Менеджер, он только стажер, что он может знать...»
«Вы меня не слышали? Он тот, кто устранил проблему с записью на курсы в университете Сон Мин».
«Правда?» - спросил Пак у Ёнхо.
«Ты действительно решил проблему?»
Его лицо выражало недоверие. Но с другой стороны, у него зародилась надежда.
«Мне просто повезло. Это можно найти на Stack Overfly».
Stack Overfly - крупнейший в мире форум программистов. Множество программистов пользуются этим сайтом.
«Серьезно? Так вот как вы решили это... Садитесь здесь. Проблема заключается в...»
Он вкратце рассказал Ёнхо о программе ETL и текущей ситуации. После этого Ёнхо спросил:
«Можем мы запустить программу один раз?»
«Она в любом случае не заработает, что там можно увидеть».
«Я просто хочу посмотреть сам сначала...»
Он сможет вызвать окно багов, только если увидит запуск программы своими глазами. Если есть ошибка, то она появится в окне багов.
«Хорошо».
Может быть из-за той истории, когда Ёнхо исправил ошибку в системе регистрации курсов, Пак Чольун выполнил его просьбу. И программа была запущена еще раз.
«А, оу...» - негромко воскликнул Ёнхо, смотря на ошибки в окне багов. Возможно, Чольун услышал его и поэтому спросил:
«Что такое? Ты что-то узнал?»
«……»
«Что, что такое? Говори».
Протокола ошибок не было, но Ёнхо и без него знал, что за ошибка и как её устранить. Но ведь протокола не было. Если он так быстро проанализировал проблему и сразу скажет решение, они не поверят ему. Замявшись, Ёнхо ответил Чольуну
«Случайно, вы не забыли прописать запрос try-catch для протокола ошибок?»
«Ах!»
Воскликнули и менеджер Чхве, и помощник Пак. Оператор try-catch и был ошибкой выполнения запроса в коде Java. Когда происходит ошибка, то требуется процесс обработки ошибок. Если оператор catch забыл вывести ошибку, протокол не появится».
«Согласен. Это вполне возможно».
«Понятно, почему нет протокола ошибок, но программа не работает...»
Сказал менеджер Чхве на слова Ёнхо.
20 минут спустя Ёнхо дождался подходящего момента.
«Вот сейчас будет нормально, если я все расскажу».
У него уже было готово решение. Ёнхо выжидал время, чтобы о нем сказать. Острие камня встретится с долотом. (Корейский вариант поговорки: «самое высокое дерево поймает самый сильный ветер» Означает, что если будешь привлекать много внимания, то нарвешься на неприятности). Ёнхо хотел выглядеть, как человек с обычным способностями. Его навыки ограничивались должностью стажера и опытом военной службы (корейские мужчины должны нести обязательную военную службу).
«Помощник менеджера. Я думаю, что обнаружил проблему».
«Серьезно? Где?»
«В строке 302 в классе FileTransfer».
«Подойди сюда и расскажи».
Позвал Пак Чольун Ёнхо, который работал за своим компьютером. Подойдя к нему, Ёнхо продолжил объяснения.
«В строке 302 оператор try-catch пытается вызвать файл, но файл не найден».
«Серьезно? Могу я взглянуть?»
Чольун выбрал источники и вставил в запрос catch вывода ошибок в протоколе. И запустил программу. Программа вылетела, но протокол остался.
java.io.FileNotFoundException: /homes/salesdata (нет такого файла или каталога)
в java.io.FileInputStream.open (Native Method -метод с реализацией в неуправляемом коде)
в java.io.FileInputStream. <init>(FileInputStream.java:106)</init>
com.mirae.FileTransfer(FileTransfer.java:302)
Протокол ошибок был в точности такой, как сказал Ёнхо. Но это не означало, что проблема решена. Сейчас они просто узнали причину.