src/app/n2n/core/err/ThrowableInfoFactory.php
public static function findCallPos(\Throwable $t, string &$filePath = null, int &$lineNo = null) {
		if (!($t instanceof \TypeError || $t instanceof  WarningError || $t instanceof  RecoverableError)) {
			return;
		}

		$message = $t->getMessage();
		if (false !== strpos($message, '{closure}')) {
			return;
		}
	
		$fmatches = array();
		$lmatches = array();
		if (preg_match('/(?<=called in )[^ \(]+/', $message, $fmatches)
				&& preg_match('/((?<=on line )|(?<=\())[0-9]+/', $message, $lmatches)) {
			$filePath = $fmatches[0];
			$lineNo = $lmatches[0];
		}
		
		$fmatches = array();
		$lmatches = array();
		if (preg_match('/(?<=passed in )[^ \(]+/', $message, $fmatches)
				&& preg_match('/((?<=on line )|(?<=\())[0-9]+/', $message, $lmatches)) {
			$filePath = $fmatches[0];
			$lineNo = $lmatches[0];
		}
	}
public static function findCallPos(\Throwable $t, string &$filePath = null, int &$lineNo = null) {
		if (!($t instanceof \TypeError || $t instanceof  WarningError || $t instanceof  RecoverableError)) {
			return;
		}

		$message = $t->getMessage();
		if (false !== strpos($message, '{closure}')) {
			return;
		}
	
		$fmatches = array();
		$lmatches = array();
		if (preg_match('/(?<=called in )[^ \(]+/', $message, $fmatches)
				&& preg_match('/((?<=on line )|(?<=\())[0-9]+/', $message, $lmatches)) {
			$filePath = $fmatches[0];
			$lineNo = $lmatches[0];
		}
		
		$fmatches = array();
		$lmatches = array();
		if (preg_match('/(?<=passed in )[^ \(]+/', $message, $fmatches)
				&& preg_match('/((?<=on line )|(?<=\())[0-9]+/', $message, $lmatches)) {
			$filePath = $fmatches[0];
			$lineNo = $lmatches[0];
		}
	}
public static function findCallPos ( \ Throwable $ t , string & $ filePath = null , int & $ lineNo = null ) { if ( ! ( $ t instanceof \ TypeError || $ t instanceof WarningError || $ t instanceof RecoverableError ) ) { return ; } $ message = $ t -> getMessage ( ) ; if ( false !== strpos ( $ message , '{closure}' ) ) { return ; } $ fmatches = array ( ) ; $ lmatches = array ( ) ; if ( preg_match ( '/(?<=called in )[^ \(]+/' , $ message , $ fmatches ) && preg_match ( '/((?<=on line )|(?<=\())[0-9]+/' , $ message , $ lmatches ) ) { $ filePath = $ fmatches [ 0 ] ; $ lineNo = $ lmatches [ 0 ] ; } $ fmatches = array ( ) ; $ lmatches = array ( ) ; if ( preg_match ( '/(?<=passed in )[^ \(]+/' , $ message , $ fmatches ) && preg_match ( '/((?<=on line )|(?<=\())[0-9]+/' , $ message , $ lmatches ) ) { $ filePath = $ fmatches [ 0 ] ; $ lineNo = $ lmatches [ 0 ] ; } }
Makes error infos more user friendly

@param string $errmsg;
@param string $filePath
@param string $lineNo
Makes error infos more user friendly