Exception isn't thrown as expected
Alexandr Druzhinin
drug2004 at bk.ru
Tue Jun 4 05:25:38 PDT 2013
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.
More information about the Digitalmars-d-learn
mailing list