php教程 php手册 php中的错误异常处理

php中的错误异常处理

Jun 06, 2016 pm 07:56 PM
linux php 다루다 이상 지역 사회 입력하다 실수

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 在PHP5中添加了类似于其它语言的错误异常处理模块.在 PHP代码中所产生的异常可被 throw语句抛出并被 catch 语句捕获.需要进行异常处理的代码都必须放入 try 代码块内,以便捕获可能存在的异常.每一个

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

    在PHP5中添加了类似于其它语言的错误异常处理模块.在 PHP代码中所产生的异常可被 throw语句抛出并被 catch 语句捕获.需要进行异常处理的代码都必须放入 try 代码块内,以便捕获可能存在的异常.每一个 try 至少要有一个与之对应的 catch.使用多个 catch 可以捕获不同的类所产生的异常.当 try 代码块不再抛出异常或者找不到 catch 能匹配所抛出的异常时,PHP 代码就会在跳转到最后一个 catch 的后面继续执行.当然,PHP 允许在 catch 代码块内再次抛出(throw)异常.当一个异常被抛出时,其后(译者注:指抛出异常时所在的代码块)的代码将不会继续执行,而 PHP 就会尝试查找第一个能与之匹配的 catch.如果一个异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么 PHP 将会产生一个严重的错误,并且输出 Uncaught Exception ... (未捕获异常)的提示信息.

   

    /**

    * Exception.php

    * PHP5内置的异常类的属性与方法

    * 以下这段代码只为说明内置异常处理类的结构,它并不是一段有实际意义的可用代码.

    */

    class Exception{

    protected $message = 'Unknown exception'; // 异常信息

    protected $code = 0; // 用户自定义异常代码

    protected $file; // 发生异常的文件名

    protected $line; // 发生异常的代码行号

    function __construct($message = null, $code = 0);

    final function getMessage(); // 返回异常信息

    final function getCode(); // 返回异常代码(代号)

    final function getFile(); // 返回发生异常的文件名

    final function getLine(); // 返回发生异常的代码行号

    final function getTrace(); // backtrace() 数组

    final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息

    //可重载的方法

    function __toString(); // 可输出的字符串

    }

    ?>

   

    /**

    * syntax .php

    */

    //语法结构以及分析

    //PHP有两种抛出异常的格式,如下

    //【1】try...catch...

    try {

    //实行可能有异常的操作,比如数据库错作,文件错作

    }catch (Exception $e){

    //打印错误信息

    }

    //【2】throw

    $message=‘我必须被运行在try{}块中****现异常的话我($message)将被返回(传递)给catch()里的异常对象的实例比如上面的$e';

    $code=123; //错误代码号,可在catch块中用$e->getCode();返回我的值 123,这样我就可以自定义错误代码号

    throw new Exception($message,$code);

    //学JAVA的注意,PHP异常处理没有throws

    ?>

   

    /**

    * Example.php

    */

    //两个实例掌握PHP异常处理

    //例【1】用 try...catch

    /* PDO连接mysql数据库,如果没看过PDO,先看下PDO的构造函数,要不跳过例1看例2 */

    $dsn = 'mysql:host=localhost;dbname=testdb';

    $user = 'dbuser';

    $password = 'dbpass';

    try {

    $dbh = new PDO($dsn, $user, $password); //创建数据库连接对象容易出现异常

    echo ’如果上面出现异常就不能显示我了‘;

    } catch (PDOException $e) {

    echo 'Connection failed: ' . $e->__toString();

    }

    ?>

   

    //例[2] try..cathc 和 throw一起用

    try {

    $error = ’我抛出异常信息,并且跳出try块‘;

    if(is_dir('./tests')){

    echo 'do sth.';

    }else{

    throw new Exception($error,12345);

    }

    echo ’上面有异常的话就轮不到我了!~
',“\n”;

    } catch (Exception $e) {

    echo ‘捕获异常: ', $e->getMessage(),$e->getCode(), “\n
”; //显示$error和123456

    }

    echo ’继续执行‘;

    ?>

php中的错误异常处理

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드

DeepSeek 웹 버전 입구 DeepSeek 공식 웹 사이트 입구 DeepSeek 웹 버전 입구 DeepSeek 공식 웹 사이트 입구 Feb 19, 2025 pm 04:54 PM

DeepSeek 웹 버전 입구 DeepSeek 공식 웹 사이트 입구

DeepSeek을 설치하는 방법 DeepSeek을 설치하는 방법 Feb 19, 2025 pm 05:48 PM

DeepSeek을 설치하는 방법

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? Feb 07, 2025 am 11:57 AM

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까?

문자열로 모음을 계산하는 PHP 프로그램 문자열로 모음을 계산하는 PHP 프로그램 Feb 07, 2025 pm 12:12 PM

문자열로 모음을 계산하는 PHP 프로그램

Bitget 공식 웹 사이트 설치 (2025 초보자 안내서) Bitget 공식 웹 사이트 설치 (2025 초보자 안내서) Feb 21, 2025 pm 08:42 PM

Bitget 공식 웹 사이트 설치 (2025 초보자 안내서)

Ouyi OKX 설치 패키지가 직접 포함되어 있습니다 Ouyi OKX 설치 패키지가 직접 포함되어 있습니다 Feb 21, 2025 pm 08:00 PM

Ouyi OKX 설치 패키지가 직접 포함되어 있습니다

See all articles