>백엔드 개발 >PHP 튜토리얼 >(4) PHP 객체지향 이론 4---예외 및 오류 처리

(4) PHP 객체지향 이론 4---예외 및 오류 처리

WBOY
WBOY원래의
2016-08-08 09:19:21879검색

하나. 예외 처리:
1. PHP 예외 예:

<?php
//运行无结果。
$a = null;
try{
    $a = 5 / 0 ;
    echo $a,PHP_EOL;
}catch(exception $e){
    $e->getMessage();
    $a = -1;
}
echo $a;
2. 자세한 예외 예:
<?php
header("Content-type: text/html; charset=utf-8");

class emailException extends exception{

}
class pwdException extends exception{
    function __toString(){
        return "<div class =\"error\">Exception($this->getCode()):
        {$this->getMessage()}
        in File:($this->getFile()) on Line:{$this->getLine()}</div>";
    }
}

function reg($reginfo =null){
    if (empty($reginfo) || isset($reginfo)){
        throw new Exception("参数非法");
    }
    if (empty($reginfo['email'])){
        throw new emailException("邮件为空");
    }
    if ($reginfo['pwd'] != $reginfo['repwd']){
        throw new pwdException("两次密码不一致");
    }
    echo "注册成功";
}
/*
 * 这个代码无法执行,抽空找原因
 */

try{
    reg(array('email' => 'waitfox@qq.com','pwd'=>123456,'repwd'=>12345678));
}catch (emailException $ee){
    echo $ee->getMessage();
}catch (pwdException $ep){
    echo $ep;
    echo PHP_EOL,"特殊处理";
}catch (Exception $e){
    echo $e->getTraceAsString();
    echo PHP_EOL,"其他情况统一处理";
}
3. 예외 처리가 사용되는 시나리오:
a. 🎜>b. 프로그램 요구 사항 및 비즈니스 문제
c. 언어 수준 견고성 요구 사항: 예외를 포착하고 이에 따른 해결 방법
3. 예외 처리: 합리적인 시나리오에서 예외 처리가 필요합니다.
2. PHP 오류 수준:
1. PHP 오류 수준:
a.deprecated: 가장 낮은 수준입니다. '권장하지 않음, 권장하지 않음'
b.주의사항: 문법이 올바르지 않습니다. 예를 들어 변수를 정의하지 않고 사용하면
c.warning: 함수 매개변수가 일치하지 않습니다.
d.fetal error: PHP 프로세스가 직접 종료되며 다음 코드는 더 이상 실행되지 않습니다.
e.prase 오류: 이 오류는 구문 검사 단계에서 보고됩니다. PHP 매뉴얼은 총 16단계의 오류를 정의합니다.
2. 예:

4. PHP 오류 처리 메커니즘:
<?php
//php5.6,据说可以演示错误,但我出现了正确结果……
$date = &#39;2012-12-20&#39;;
if (ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",$date,$regs)){
    echo "$regs[3].$regs[2].$regs[1]";
}else{
    echo "Invaild date format:$date";
}

if ($i>5){
    echo "$i没有初始化啊",PHP_EOL;
}

$a = array('o'=>2,4,6,8);
echo $a[o];
$result = array_sum($a,3);
echo fun();
echo "错误了…… 能继续吗?";

3. PHP 객체 지향 요약:
<?php
function customerError($errno,$errstr,$errfile,$errline){
    echo "<b>错误代码:</b>[${errno}],文件{$errstr}\r\n";
    echo "错误所在的代码行:{$errline}文件{$errfile}\r\n";
    echo "PHP版本",PHP_VERSION,"(",PHP_OS,")\r\n";
}

set_error_handler("customeError",E_ALL|E_STRICT);
$a = array('o'=>2,4,6,8);
echo $a['o'];

//此问题亦无答案。没有报错
PHP 객체 지향 지식 포인트: 매직 메소드, 인터페이스, 다형성, 클래스 재사용, 리플렉션 및 예외 메커니즘.
PHP에는 몇 가지 함수형 프로그래밍 개념도 도입되었습니다.

저작권 안내: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.

위에서 (4) PHP 객체지향 이론 4---예외 및 오류 처리에 대한 내용을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.