Mediumsystem-error
Что такое std::system_error?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
`std::system_error` (C++11) — исключение, наследник std::runtime_error, оборачивает std::error_code. Используется в STL для ошибок потоков, filesystem, mutex.
namespace fs = std::filesystem;
try {
fs::remove_all("/some/path");
} catch (const std::system_error& e) {
auto ec = e.code();
std::cerr << ec.value() << ": " << ec.message() << '\n';
// 2: No such file or directory
}error_code — пара (int value, error_category&), компактное представление без наследования. system_error прозрачно преобразует errno/GetLastError в исключение.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.