Exception style

2014-06-25 Thread Sean Campbell via Digitalmars-d-learn

i know you can use both
throw new Exception(msg);
and

module test;

class testException {
 this (string msg) {
  super(some error info : ~msg);
 }
}

throw new testException(msg);

but which one is better conforms to the d style?


Re: Exception style

2014-06-25 Thread bearophile via Digitalmars-d-learn

Sean Campbell:


but which one is better conforms to the d style?


Both are valid. Use the second when you want a more precise 
exception in your code, this is common in larger programs.


Keep in mind that you can allocate an exception in a point and 
throw it in another. This reduces the runtime allocations and 
should allow more @nogc code.


Bye,
bearophile


Re: Exception style

2014-06-25 Thread Sean Campbell via Digitalmars-d-learn

On Wednesday, 25 June 2014 at 09:54:16 UTC, bearophile wrote:

Sean Campbell:


but which one is better conforms to the d style?


Both are valid. Use the second when you want a more precise 
exception in your code, this is common in larger programs.


Keep in mind that you can allocate an exception in a point and 
throw it in another. This reduces the runtime allocations and 
should allow more @nogc code.


Bye,
bearophile


Thank you very much for the quick reply, and a method to save 
memory.