Обработка исключений в языке C#
1. В C# все исключения должны быть представлены объектами — экземплярами класса, унаследованного от класса System.Exception. В C++ для представления исключения можно использовать значение любого типа.
2. В C# можно использовать секцию finally для написания завершающего кода, который выполняется как при нормальной работе программы, так и при возникновении исключений. В C++ это сделать довольно сложно без дублирования кода.
3. В C# исключения системного уровня, такие как переполнение, деление на ноль и разыменование null, имеют четко определенные классы исключений и находятся наравне с состояниями ошибок уровня пользовательской программы. Как видим, аппарат исключений C# очень близок к аналогичному аппарату
в языке Java.