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}';
 | 
						|
	}
 | 
						|
} |