rgb192
asked on
call this class
what are lines of code that will call this class in different ways
to show different outputs
to show different outputs
<?php // RAY_try_throw_catch.php
error_reporting(E_ALL);
echo "<pre>";
// DEMONSTRATE A TRY WITH MULTIPLE CATCH BLOCKS
// EXAMPLE: RAY_try_throw_catch.php?q=1
// http://php.net/manual/en/reserved.exceptions.php
// http://php.net/manual/en/language.exceptions.php
// http://php.net/manual/en/language.exceptions.extending.php
Class ScrewUP
{
// CONSTRUCTOR SETS A CODE PROPERTY FOR THE OBJECT
public function __construct($q)
{
// CHOOSE AN INTEGER VALUE FROM ZERO TO THREE
$this->code = 0;
if (!empty($q)) $this->code = floor($q % 4);
}
// THIS WILL THROW SOME KIND OF EXCEPTION BASED ON THE CODE
public function hiccup()
{
// THESE EXCEPTIONS WILL BE CAUGHT
if ($this->code == 0) throw new Exception_zero('Hello');
if ($this->code == 1) throw new Exception_one('World');
// THIS WILL BE AN UNCAUGHT EXCEPTION: FATAL ERROR
if ($this->code == 2) throw new Exception_two('Foobar');
// THIS WILL BE AN UNEXTENDED EXCEPTION
throw new Exception('Naked');
}
}
Class Exception_Zero extends Exception
{
public function __construct($x)
{
parent::__construct();
echo "Exception Zero: $x ";
}
}
Class Exception_One extends Exception
{
public function __construct($x)
{
parent::__construct();
echo "Exception One: $x ";
}
}
// INSTANTIATE THE CLASS USING THE URL q= VARIABLE
$x = new Screwup($_GET['q']);
// RUN THE TRY/CATCH LOGIC TO THROW AN EXCEPTION
try
{
$x->hiccup();
}
catch (exception_One $e)
{
echo "I Have Caught Exception Number: $x->code ";
var_dump($e);
}
catch (exception_Zero $e)
{
echo "I Have Caught Exception Number Zero ";
var_dump($e);
}
catch (exception $e)
{
echo "I Have Caught an UnExtended Exception ";
var_dump($e);
}
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
thanks both