Re: PHP 5 Error Handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





Joseph Crawford wrote:
Guys,

i have been working with custom exception classes that extend the
general exception.  Here is some code i have

       public function command($cmd) {
               if($cmd) {
                       $res = fputs($this->connection, $cmd);
                       $this->response = fgets($this->connection, 128);
                       switch($this->getCode()) {
                               case 500:
                                       throw new CommandException($cmd);
                               break;
                       }
               }
       }

       public function selectGroup($group) {
               $this->group = $group;
               if(substr($this->response,0,3) == "200") {

                       THIS IS THE LINE THAT THROWS THE ERROR
                       $this->command("NoSuchCommand\n");

                       $this->response = fgets($this->connection, 1024);
               }
               $info = split(" ", $this->response);

               $this->first = $info[2];
               $this->last = $info[3];
       }

now when the error is thrown and i do $e->getLine(); it shows the line
of the file where the throw statement is.  Is there a way to make it
show the actual line number of the line that is the error? the
$this->command("NoSuchCommand\n"); line.


one way to do this is to call $e->getTraceAsString() and then log/print the result. It will return whole call stack. But this is kind of overkill.


another way:

        public function selectGroup($group) {
                $this->group = $group;
                if(substr($this->response,0,3) == "200") {

                        THIS IS THE LINE THAT THROWS THE ERROR
			try {
	                	$this->command("NoSuchCommand\n");
			} catch (CommandException $e) {
				throw new CommandException($e->getCmd_or_whatever_returns_cmd())	
			}

                        $this->response = fgets($this->connection, 1024);
                }
                $info = split(" ", $this->response);

                $this->first = $info[2];
                $this->last = $info[3];
        }

--
Ognyan Bankov ogre_bank@xxxxxxxxx
ogre.homelinux.org

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux