無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

?(exceptions)

?

PHP 5 ??????????? PHP ?? ("throw" )? ("catch" ) ??? ??? try ????? try ??? catch ?????????? ? catch ?????? ??? (try ???? ????? catch ???) ?catch ??????? catch ???? (???) ???

??????????? PHP ???? catch ?? ???PHP "Uncaught Exception ..." ??? ???(fatal error)??? set_exception_handler() ??? ??

PHP 5.5 ????catch ? finally ????? finally ????? try catch ?????? ??????? finally ????????

????Exception ?? Exception ???????? ????? PHP Fatal Error ??

:

PHP ? ? ??????? ??? ??? ErrorException ??????????

1 ???

<?php
function inverse($x) {
    if (!
$x) {
        throw new 
Exception('?');
    }
    return 
1/$x;
}

try {
    echo 
inverse(5) . "\n";
    echo 
inverse(0) . "\n";
} catch (
Exception $e) {
    echo 
'?: ',  $e->getMessage(), "\n";
}

// ????
echo "Hello World\n";
?>

??????

0.2
?: ?
Hello World

2 ?? finally ?

<?php
function inverse($x) {
    if (!
$x) {
        throw new 
Exception('?');
    }
    return 
1/$x;
}

try {
    echo 
inverse(5) . "\n";
} catch (
Exception $e) {
    echo 
'?: ',  $e->getMessage(), "\n";
} finally {
    echo 
"First finally.\n";
}

try {
    echo 
inverse(0) . "\n";
} catch (
Exception $e) {
    echo 
'?: ',  $e->getMessage(), "\n";
} finally {
    echo 
"Second finally.\n";
}

// ???
echo "Hello World\n";
?>

??????

0.2
First finally.
?: ?
Second finally.
Hello World

3 ???

<?php

class MyException extends Exception { }

class 
Test {
    public function 
testing() {
        try {
            try {
                throw new 
MyException('foo!');
            } catch (
MyException $e) {
                
// ?
                
throw $e;
            }
        } catch (
Exception $e) {
            
var_dump($e->getMessage());
        }
    }
}

$foo = new Test;
$foo->testing();

?>

??????

string(4) "foo!"


powered by SEO.CUG.NET