Я знаю только основы обработки исключений в C ++, но, насколько я понимаю, в Java есть исключительная иерархия на основе Object
для исключений (Throwable
, Exception
, RuntimeException
, Error
), в то время как в C ++ вы можете сделать
try
{
throw 1337;
}
catch (int i)
{
// i == 1337
}
Это, конечно, отражает дизайн ваших структур классов и общееполитики обработки исключений и т. д.
Другое отличие, представленное этим, казалось бы, незначительным отличием, состоит в том, что в C ++ действительно есть только то, что известно как исключения времени выполнения в мире Java, что означает, что вы можете выбросить что угодно в любое время без явного написания кода.для обработки псевдо-исключения throw ( Я не хочу называть int
или любой другой тип примитива исключением, это просто возможно исключительные значения ).
Наконец, из-заПо своей природе, по сравнению с исключениями Java, исключения C ++ по умолчанию не содержат что-либо сравнимое с трассировкой стека Java.