<?php
$a = null;
try{
$a = 5/0;
echo $a;
catch(Exception $e){
echo $e->getMessage();
$a = -1;
}
echo $a;//null
以上代码会触发异常,分母不能为零;
该异常不会被捕获到,即$a没有被赋予-1的值;
PHP通常是无法自动捕获有意义的异常的,它把所有不正常的情况都试作了错误,要想捕获这个异常,就得使用if...else结构,手动抛出异常,然后再捕获;
PHP也有一些异常可以自动捕获,如PDOException、ReflectionException等;
Java则有一套完整的异常机制,内置很多异常类会自动捕获各种异常;