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.