Dear,
  I felt a bit disappointed while learning about the throw qualifier.
I think a more useful qualifier can be created in order to describe
the possible exceptions a method can throw, in the following way:

int TheClass::exceptMethod() _throw TheException {
  throw TheException();
}

In this case, the gcc would check at runtime that the only exception
the method exceptMethod may throw is TheException.

Moreover

int TheClass::wrongMethod() _throw () {
  exceptMethod();
}

should yield an error, since the exceptMethod() may throw the
exception TheException(),
but the qualifier _throw () indicates that no exception can arise from
calling wrongMethod().

However

int TheClass::correctMethod() _throw() {
 try {
   exceptMethod()
 } catch (TheException) {
     doSomething();
 }
}

should correct, since the exception is catched.

I think that, if it is pessimistically supposed that every exception
not enclosed into a try { } catch { } block may be thrown, the check
can be done at runtime.

The overall idea is, of course, to give information to the caller
about the exceptions it must handle.

I think that this extension would worth the while. Any ideas?
   Cheers,
    Sergio

Reply via email to