Opened 3 years ago

Closed 3 years ago

#600 closed ожидаются исправления (задача сдана)

WW_exceptions kirill.kondratyuk

Reported by: kondratyuk.kirill Owned by: Дмитрий Лапшин (lapshin)
Component: WW_exceptions Version:
Keywords: Cc:

Description


Change History (4)

comment:1 Changed 3 years ago by kondratyuk.kirill

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

Есть вопросы
Для того чтобы сделать get_elem я сделал еще один метод,который печатает элемент, чтобы внутри обрабатывать полученные ошибки. Вопрос: как не создавая новый метод можно это сделать?

Приписал noexcept около каждого публичного метода кроме конструктора - хорошая ли это практика?
Нужно ли бо'льшую иерархию ошибок делать и как обрабатывать bad_alloc, так как мне говорят, что то что я делаю = unreachable code

С уважением, Кирилл

comment:2 Changed 3 years ago by Дмитрий Лапшин (lapshin)

Owner: changed from Дмитрий Лапшин (lapshin) to kondratyuk.kirill
Type: ожидается проверкаожидаются исправления

У тебя есть throw в noexcept. И смысл тогда? Ты сча написал бессмысленно: если в * ошибка, её не обработать, вызвавший код о ней не узнает, зато на вывод кому-то что-то печатают. Обрабатывать ошибку надо там, где можно. В main общаются с пользователем: там и выводим на экран и продолжаем ждать других команд.

    } catch (const MatrixException &exception) {
        throw exception;
    }

Это вообще симптом непонимания зачем исключения.

Формат вывода: пробелы. И в исходнике тоже.

Расскажи пожалуйста как size_t может быть меньше нуля.

Зачем print_elem? Ну то есть да, проверка индекса, а может просто сделать правильный оператор вывода всей матрицы и всё?

MatrixException::MatrixException(const char *msg) : _msg(const_cast<char *>(msg)) {}

чо?!

6.

comment:3 Changed 3 years ago by kondratyuk.kirill

Owner: changed from kondratyuk.kirill to Дмитрий Лапшин (lapshin)
Type: ожидаются исправленияожидается проверка

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

Я дико извиняюсь за такую задержку - я не рассчитал своё время и проект для стажировки в JB занял оочень много времени:(. Извините

Я исправил все noexcept на отлов исключений внутри обработки запросов в мейне - так получилось красивее и гибче всего.
Про симптом непонимания все осознал, сначала видимо подумал, что так легче воспринимать, мол видно, что вот тут ошибка может выкинуться.
Формат вывода везде поправил. Теперь все как нужно.
Про size_t тут прям да.
print_elem заменил на хорошее написание взятия элемента.
ту стремную строчку с кастом заменил.

С уважением, Кирилл

comment:4 Changed 3 years ago by Дмитрий Лапшин (lapshin)

Resolution: задача сдана
Status: assignedclosed
Type: ожидается проверкаожидаются исправления
    if (matrix->_data == nullptr) {

Ну так не бываааает, new кидает. Соотсвественно на out of memory ошибку ты не выведешь.

Чтение не имеет сильной гарантии.

Давай писать с пробелом: delete[] thing. И деструкторы лапками не вызываем, кроме как в ответ на placement new.

7.

Note: See TracTickets for help on using tickets.