Particular exceptions names
Ali Çehreli
acehreli at yahoo.com
Wed Jul 27 09:35:12 UTC 2022
On 7/26/22 16:43, pascal111 wrote:
> In next example code, it used user-made exception,
I am not sure I understand you correctly because the program you show
throws Exception, which is not user-made at all.
If you want to throw a particual exception that you define, you need to
inherit that type from Exception.
The following program show an example as well as 'enforce', which I
prefer over explicit if+throw+else:
import std.stdio;
import std.format;
class MissingArguments : Exception {
this(string msg, string file = __FILE__, size_t line = __LINE__) {
super(msg, file, line);
}
}
void main(string[] args) {
// if (args.length != 42) {
// throw new MissingArguments(args.length);
// }
import std.exception : enforce;
enforce!MissingArguments(args.length == 42,
format!"Too few arguments: %s"(args.length));
// Program continues here... (No 'else' needed.)
}
Ali
More information about the Digitalmars-d-learn
mailing list