<?php
/**
* 异常的操作
* User: fu
* Date: 2017/7/28
* Time: 9:15
*/

// Error

echo $p; // Notice
echo 10/0; // Warning
//$p = new Person(); // Fatal error
/*
* 对于error来说,程序执行到这里报错并终止
*/
echo '结束<br>';

function daoShu($num){
if(!is_numeric($num)){
throw new Exception('输入的不是一个数字或者无法转换为数字', 101);
} else if(!$num){
throw new Exception('被除数不能为0', 102);
} else{
return 1/$num;
}
}

// 调用定义了异常信息的代码块
// 异常一般是由程序员自己来定义系统无法描述的问题
// 通过代码来控制如果指定的问题发生了,则输出该问题的描述,以便确认问题发生的原因
/*
* 当try块中的代码出现了异常后,在该异常后面的代码不再执行,而跳转到catch块中执行
*/
try{
// daoShu(0.0);
daoShu('123');
echo '执行了第一次调用';

}catch (Exception $e){
echo '<br>错误序号:'.$e->getCode().',错误描述:'.$e->getMessage();
}finally{
/** 无论代码块是否有异常发生,finally中的代码始终会执行 */
echo '<br>这里是finally块的代码';
}


//var_dump(is_nan(123));
//var_dump(is_nan(123.3));
//echo '<br><br>';
//var_dump(is_numeric(123));
//var_dump(is_numeric('1234'));
//var_dump(is_numeric('abc'));
//var_dump(1/'1234');