04.06.2013 19:18, Alexandr Druzhinin пишет:
31.05.2013 8:56, Alexandr Druzhinin пишет:
Hello
I have code like this:

class SomeClass {
ubyte[] data_;

...

     auto getObjectType() const {
         if(data_ is null) {
             writeln("throwing");
             throw new Exception("Here the exception should be thrown!");
         }
         KeyHeaderHelper value_header;
         value_header.ptr_ = cast(ubyte*) data_.ptr;
         return value_header.object_type;
     }
}

When data_ is null the application just prints "throwing" and hangs up
without an exception throwing. I don't know how to handle this. May be I
did something wrong? If so then what?

Rephrase my question - I have a function getObjectType, that throws an
exception. Unittest is ok. But in more complex use case, this function
doesn't throw exception and just hangs up. If I brace the function call
by try/catch then an exception is throw again. But I guess exception
have to be thrown in any case.
Oh, no.. If I do

...
try {
        auto foo =  some_class_instance.getObjectType();
}
catch(Throwable t) {
        writeln(t.msg); // print exception, no hanging
        throw t;        // hangs again
}
...
all happens in the main thread.

Reply via email to