On 27 Apr., 00:29, howa <howac...@[EMAIL PROTECTED]
> wrote:
> I have simple code which provide exception handling functions, e.g.
>
> //---------------------------------
> try {
> int j = 2;
> int k = 0;
> double t = j / k;
Division by zero leads to undefined behavior, see
[expr.mul]/4:
"[..] If the second operand of / or % is zero the behavior
is undefined;[..]
> } catch (...) {
> cout<<"Error!";
> }
>
> //---------------------------------
>
> VS.net told me "unhandled exception".
What is VS.net? (Just as a remark: For a reasonable
error description, you should at least specify the
rough compiler specification, e.g. Visual Studio 2005
or such).
> But isn't catch (...) will cover as the default handler?
An exception handler with ... will catch any exception
raised inside it's try block. There is no exception
raised in your code example. Note that a so-called
"floating-point exception", which might be raised
here, does not belong to the C++ exceptions. The only
****table way to handle floating-point exceptions in
upcoming C++ (which will sup****t the C99 floating-point
environment functions) is to mask these exceptions
before raising them and later use e.g. fetestexcept
to check which 'exception' has been raised.
HTH & Greetings from Bremen,
Daniel Krügler
--
[ See http://www.gotw.ca/resources/clcm.htm
for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]


|