Opened 3 years ago
Closed 3 years ago
#597 closed ожидается проверка (задача сдана)
lab_12 = exceptions
Reported by: | petrov.vladimir | Owned by: | Святослав Власов |
---|---|---|---|
Component: | WW_exceptions | Version: | 3.0 |
Keywords: | Cc: |
Description
Change History (5)
comment:1 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 3 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
comment:3 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
Теперь валгринд детектит лики в каждом тесте
- Не все
bad_alloc
ловишь и оборачиваешь FILE*
иprintf
-- это прошлыйвексеместр. Сегодня мы используемofstream
- Зачем так сложно??
std::vector<size_t> dimensions; while (dimensions.size() < 2) { size_t d; my_file >> d; if (my_file.eof()) break; dimensions.push_back(d); } if(dimensions.size() < 2) { my_file.close(); throw MatrixException("LOAD: invalid file format."); } size_t rows = dimensions[0], cols = dimensions[1];
Это всё переписывается двумя строчками:
if (!(my_file >> rows >> cols;)) throw MatrixException(...);
То же самое касается дальнейшей фигни с каунтерами.
Когда поток пытается что-то прочитать и у него не получается, он переходит в состояние fail
, из которого обратно уже не возвращается (если только у него явно не вызвать clear
). Поэтому проверять поток после каждого чтения бессмысленно. Можно сделать это в конце один раз. Если поток в порядке, то значит все чтения прошли успешно, а если нет -- то где-то мы сломались и можно швыряться эксепшенами.
comment:4 Changed 3 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 2.0 → 3.0 |
comment:5 Changed 3 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Валгринд по прежнему детектит утечки в каждом тесте, потому что ты матрицы в регистрах перед выходом из программы не освободил.
Вообще, у тебя бы сильно упростился код, если бы ты заюзал вектора.
В остальном вроде всё ок, 9/10
Не собралось