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