[PHPTAL] Fatal error: Exception thrown without a stack frame in Unknown on line 0

Rick Hopkins rick.hopkins at gmail.com
Mon Mar 3 18:50:39 CET 2008


I am working on a new MVC based system and have been utilizing PHPTAL 
for the interface side of things. I am running into a problem though 
when I try to catch exceptions. I have labeled my new framework 
"Melodic". I have a static class called "MelodicException" which should 
catch all the exceptions and process them. I have set_exception_handler 
so that it will pass everything into MelodicException. So anyway I keep 
getting the message below in my exception handler.

Fatal error: Exception thrown without a stack frame in Unknown on line 0

Here is the exception handler code...

<?php
/**
  * @name MelodicException
  * The default exception handling class for the Melodic Framework
  * @author Rick Hopkins
  * @package Melodic
  */

class MelodicException
{
	/**
	 * Initialize Melodic's customized Exception handler
	 * @param object $_e
	 */
	static function exception(Exception $_e)
	{
		if (LOG_ERRORS) Core::log(get_class($_e)." Caught. Message: 
".$_e->getMessage()." | File: ".$_e->getFile().":".$_e->getLine(), LOG_ERR);
		if (NOTIFY_ADMINS) Core::notify(get_class($_e)." Caught", "Message: 
".$_e->getMessage()."\nFile: 
".$_e->getFile().":".$_e->getLine()."\nTime: ".date("Y-m-d 
H:i:s")."\n----------\nStackTrace:\n".$_e->getTraceAsString());
		if (SHOW_ERRORS){
			$_message = "<pre>".$_e->getMessage()."\nFile: ".$_e->getFile()." 
(Line:".$_e->getLine().")\n----------\nStack 
Trace:\n".$_e->getTraceAsString()."</pre>";
			if (PAGE_ERRORS && TEMPLATE_DIR){
				$_template = new PHPTAL(TEMPLATE_DIR.PAGE_ERRORS);
				$_template->set("TEMPLATE_DIR", TEMPLATE_DIR);
				$_template->set("ERROR_DETAILS", $_message);
				echo $_template->execute();
			} else print $_message;
		}
	}
	
	/**
	 * Handle php errors
	 * @param int $_no
	 * @param string $_str
	 * @param string $_file
	 * @param int $_line
	 */
	static function error($_no, $_str, $_file, $_line)
	{
		$_types = array(
			1 => "E_ERROR",
			2 => "E_WARNING",
			4 => "E_PARSE",
			8 => "E_NOTICE",
			16 => "E_CORE_ERROR",
			32 => "E_CORE_WARNING",
			64 => "E_COMPILE_ERROR",
			128 => "E_COMPILE_WARNING",
			256 => "E_USER_ERROR",
			512 => "E_USER_WARNING",
			1024 => "E_USER_NOTICE",
			6143 => "E_ALL",
			2048 => "E_STRICT",
			4096 => "E_RECOVERABLE_ERROR"
		);
		throw new Exception($_types[$_no]." Caught: ".$_str." in ".$_file." on 
line ".$_line);
	}
}
?>

It is dying on the actual execute call. Can't figure out why. Any help 
would be greatly appreciated.

-- 
Rick Hopkins
616.340.9645



More information about the PHPTAL mailing list