exceptions
Исключения
Обработка ошибок через try/catch/finally
Показать языки:
JSJavaScript
try {
const result = JSON.parse("invalid json");
throw new Error("Своя ошибка");
} catch (error) {
console.error("Ошибка:", error.message);
} finally {
console.log("Выполняется всегда");
}
// Кастомное исключение
class ValidationError extends Error {
constructor(message) {
super(message);
this.name = "ValidationError";
}
}PYPython
try:
result = int("не число")
raise ValueError("Своя ошибка")
except ValueError as e:
print(f"Ошибка значения: {e}")
except Exception as e:
print(f"Общая ошибка: {e}")
finally:
print("Выполняется всегда")
# Кастомное исключение
class ValidationError(Exception):
passC#C#
try
{
int result = int.Parse("не число");
throw new Exception("Своя ошибка");
}
catch (FormatException ex)
{
Console.WriteLine($"Ошибка формата: {ex.Message}");
}
catch (Exception ex)
{
Console.WriteLine($"Общая ошибка: {ex.Message}");
}
finally
{
Console.WriteLine("Выполняется всегда");
}C++C++
#include <stdexcept>
try {
throw std::runtime_error("Своя ошибка");
throw std::invalid_argument("Неверный аргумент");
}
catch (const std::invalid_argument& e) {
cout << "Неверный аргумент: " << e.what();
}
catch (const std::exception& e) {
cout << "Ошибка: " << e.what();
}
// C++ не имеет finally — используют RAIIПояснение
Python позволяет ловить несколько типов исключений в одном except. C++ не имеет finally — вместо него используется паттерн RAII (деструкторы вызываются автоматически).