int getFib(in int n, in int max_depth, in int max_value, in int depth) throws NegativeValueException, FibException;
The corresponding C++ code fragment to use this method is:
ExceptionTest::Fib fib = ExceptionTest::Fib::_create();
try {
int result = fib.getFib( 4, 100, 32000, 0 );
cout << "Result of fib.getFib() = " << result << endl;
} catch ( ExceptionTest::NegativeValueException e ) {
// ...
} catch ( ExceptionTest::FibException e ) {
// ...
}
This example shows the standard way to throw an exception in C++. You are not strictly required to call the setNote and add methods; however, these methods provide information that may be helpful in debugging or error reporting.
int32_t
ExceptionTest::Fib_impl::getFib (
/*in*/ int32_t n, /*in*/ int32_t max_depth,
/*in*/ int32_t max_value, /*in*/ int32_t depth )
throw (
::ExceptionTest::NegativeValueException,
::ExceptionTest::FibException
){
// DO-NOT-DELETE splicer.begin(ExceptionTest.Fib.getFib)
if (n < 0) {
NegativeValueException ex = NegativeValueException::_create();
ex.setNote("n negative");
ex.add(__FILE__, __LINE__, "ExceptionTest::Fib_impl::getFib");
throw ex;
}
// several lines delete
// DO-NOT-DELETE splicer.end(ExceptionTest.Fib.getFib)
}