forked from LeenkxTeam/LNXSDK
		
	
		
			
				
	
	
		
			118 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| package haxe;
 | |
| 
 | |
| /**
 | |
| 	Base class for exceptions.
 | |
| 
 | |
| 	If this class (or derivatives) is used to catch an exception, then
 | |
| 	`haxe.CallStack.exceptionStack()` will not return a stack for the exception
 | |
| 	caught. Use `haxe.Exception.stack` property instead:
 | |
| 	```haxe
 | |
| 	try {
 | |
| 		throwSomething();
 | |
| 	} catch(e:Exception) {
 | |
| 		trace(e.stack);
 | |
| 	}
 | |
| 	```
 | |
| 
 | |
| 	Custom exceptions should extend this class:
 | |
| 	```haxe
 | |
| 	class MyException extends haxe.Exception {}
 | |
| 	//...
 | |
| 	throw new MyException('terrible exception');
 | |
| 	```
 | |
| 
 | |
| 	`haxe.Exception` is also a wildcard type to catch any exception:
 | |
| 	```haxe
 | |
| 	try {
 | |
| 		throw 'Catch me!';
 | |
| 	} catch(e:haxe.Exception) {
 | |
| 		trace(e.message); // Output: Catch me!
 | |
| 	}
 | |
| 	```
 | |
| 
 | |
| 	To rethrow an exception just throw it again.
 | |
| 	Haxe will try to rethrow an original native exception whenever possible.
 | |
| 	```haxe
 | |
| 	try {
 | |
| 		var a:Array<Int> = null;
 | |
| 		a.push(1); // generates target-specific null-pointer exception
 | |
| 	} catch(e:haxe.Exception) {
 | |
| 		throw e; // rethrows native exception instead of haxe.Exception
 | |
| 	}
 | |
| 	```
 | |
| **/
 | |
| extern class Exception {
 | |
| 	/**
 | |
| 		Exception message.
 | |
| 	**/
 | |
| 	public var message(get,never):String;
 | |
| 	private function get_message():String;
 | |
| 
 | |
| 	/**
 | |
| 		The call stack at the moment of the exception creation.
 | |
| 	**/
 | |
| 	public var stack(get,never):CallStack;
 | |
| 	private function get_stack():CallStack;
 | |
| 
 | |
| 	/**
 | |
| 		Contains an exception, which was passed to `previous` constructor argument.
 | |
| 	**/
 | |
| 	public var previous(get,never):Null<Exception>;
 | |
| 	private function get_previous():Null<Exception>;
 | |
| 
 | |
| 	/**
 | |
| 		Native exception, which caused this exception.
 | |
| 	**/
 | |
| 	public var native(get,never):Any;
 | |
| 	final private function get_native():Any;
 | |
| 
 | |
| 	/**
 | |
| 		Used internally for wildcard catches like `catch(e:Exception)`.
 | |
| 	**/
 | |
| 	static private function caught(value:Any):Exception;
 | |
| 
 | |
| 	/**
 | |
| 		Used internally for wrapping non-throwable values for `throw` expressions.
 | |
| 	**/
 | |
| 	static private function thrown(value:Any):Any;
 | |
| 
 | |
| 	/**
 | |
| 		Create a new Exception instance.
 | |
| 
 | |
| 		The `previous` argument could be used for exception chaining.
 | |
| 
 | |
| 		The `native` argument is for internal usage only.
 | |
| 		There is no need to provide `native` argument manually and no need to keep it
 | |
| 		upon extending `haxe.Exception` unless you know what you're doing.
 | |
| 	**/
 | |
| 	public function new(message:String, ?previous:Exception, ?native:Any):Void;
 | |
| 
 | |
| 	/**
 | |
| 		Extract an originally thrown value.
 | |
| 
 | |
| 		Used internally for catching non-native exceptions.
 | |
| 		Do _not_ override unless you know what you are doing.
 | |
| 	**/
 | |
| 	private function unwrap():Any;
 | |
| 
 | |
| 	/**
 | |
| 		Returns exception message.
 | |
| 	**/
 | |
| 	public function toString():String;
 | |
| 
 | |
| 	/**
 | |
| 		Detailed exception description.
 | |
| 
 | |
| 		Includes message, stack and the chain of previous exceptions (if set).
 | |
| 	**/
 | |
| 	public function details():String;
 | |
| 
 | |
| 	/**
 | |
| 		If this field is defined in a target implementation, then a call to this
 | |
| 		field will be generated automatically in every constructor of derived classes
 | |
| 		to make exception stacks point to derived constructor invocations instead of
 | |
| 		`super` calls.
 | |
| 	**/
 | |
| 	// @:noCompletion @:ifFeature("haxe.Exception.stack") private function __shiftStack():Void;
 | |
| }
 |