Exceptions in safe D

Simen Kjærås simen.kjaras at gmail.com
Mon Jan 9 14:56:53 PST 2012


On Mon, 09 Jan 2012 22:33:28 +0100, Juan Campanas <johnny at bells.com> wrote:

> On Monday, 9 January 2012 at 21:14:05 UTC, Robert Clipsham wrote:
>> Are exceptions in safe D possible? I started trying to make my code  
>> @safe (there's no reason why it can't be as far as I'm aware), but I  
>> hit the following issue:
>>
>> ----
>> @safe
>>
>> class MyException : Exception
>> {
>>    this()
>>    {
>>        super("");
>>    }
>> }
>>
>> void main()
>> {
>>    throw new MyException("");
>> }
>> ----
>> $ rdmd test.d
>> test.d(7): Error: safe function 'this' cannot call system function  
>> 'this'
>> test.d(13): Error: constructor test.MyException.this () is not callable  
>> using argument types (string)
>> test.d(13): Error: expected 0 arguments, not 1 for non-variadic  
>> function type @safe MyException()
>> ----
>>
>> Is this just unimplemented, is there a workaround, or will this never  
>> work?
>>
>> Thanks,
>
> Why are you calling the MyException constructor with a string parameter?

Yeah, that explains the error on line 13.


> Anyways. I think that Exception is not marked as @safe.

Indeed. This seems like a bug. Please file it in bugzilla.
http://d.puremagic.com/issues/enter_bug.cgi


More information about the Digitalmars-d-learn mailing list