eao197 wrote:
> Видишь ли, в Java большое количество try/catch может объясняться
> наличием спецификации исключений у методов -- задал кто-то в публичном
> интерфейсе спецификацию исключений от балды и все -- в реализациях
> этих методов нужно ставить try/catch для того, чтобы перехватывать
> исключения, не удовлетворяющие спецификации и транслировать их в
> какое-то специфицированное исключение. В C++ и, как я понимаю, в C#
> такой проблемы нет
Явная спецификация исключений — это, ИМХО, большой плюс. Ее бы еще до
ума довести, например так:
void method1() throws Exception1 {...};
void method2() throws Exception2 wraps Exception1 {method1();}
То есть добавить еще и декларативную спецификацию оборачивания
исключений, ну и доработать try..catch для этого.
Только представьте:
struct SomeStruct
{
SomeStruct(const SomeStruct &other) throw(blah_blah_exception) {};
};
struct container
{
void swap(...) throw(std::bad_alloc, std::runtime_error wraps *) {};
}
И потом контролировать это все на этапе компиляции.
--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9