27 lines
717 B
Haxe
27 lines
717 B
Haxe
|
package haxe.exceptions;
|
||
|
|
||
|
/**
|
||
|
An exception that carry position information of a place where it was created.
|
||
|
**/
|
||
|
class PosException extends Exception {
|
||
|
/**
|
||
|
Position where this exception was created.
|
||
|
**/
|
||
|
public final posInfos:PosInfos;
|
||
|
|
||
|
public function new(message:String, ?previous:Exception, ?pos:PosInfos):Void {
|
||
|
super(message, previous);
|
||
|
if (pos == null) {
|
||
|
posInfos = { fileName:'(unknown)', lineNumber:0, className:'(unknown)', methodName:'(unknown)' }
|
||
|
} else {
|
||
|
posInfos = pos;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
Returns exception message.
|
||
|
**/
|
||
|
override function toString():String {
|
||
|
return '${super.toString()} in ${posInfos.className}.${posInfos.methodName} at ${posInfos.fileName}:${posInfos.lineNumber}';
|
||
|
}
|
||
|
}
|