ホームページ  >  記事  >  バックエンド開発  >  PHP 例外処理とエラー処理メソッドの共有

PHP 例外処理とエラー処理メソッドの共有

小云云
小云云オリジナル
2018-03-07 09:47:222469ブラウズ

PHP の例外: ロジックとビジネス プロセスの中断です。PHP のエラー: 独自の問題、不正な構文または環境の問題、コンパイラーがチェックを通過できないため、この記事では主に PHP の例外処理とエラーについて説明します。 . 対処方法、皆さんのお役に立てれば幸いです。

例外処理機構の使い方

PHPとJavaのゼロ除算例外の違い

<?php
/**
 * Created by PhpStorm.
 * User: wangkai
 * Date: 2018/3/6
 * Time: 上午8:53
 */
$a=null;
try{
    $a=5/0;
    echo $a;
}catch (exception $e){
    $e->getMessage();
    $a=-1;
}
echo $a;

実行結果


Java実装

public class ExcepetionTry{
    public static void tp() throws ArithmeticException{
        int a;
        a=5/0;
        system.out.println("运算结果:"+a);
    }
    public static void main(String[] args){
        int a;
        try{
         a=5/0;
         System.out.println("运算结果"+a);
        }catch(ArithmeticException e){
            e.printStackTrace();
        }finally{
            a=-1;
            System.out.println("运算结果"+a);
        }
        try{
            ExceptionTry.tp();
        }catch(Exception e){
            System.out.println("异常被捕获");
        }
        }
    }
}

PHPでは、これはエラーとみなされ、エラーがトリガーされます例外は自動的にスローされません。PHP は例外を積極的にスローした後でのみ例外をキャッチできます

Java では、ゼロ除算は ArithmeticException とみなされ、例外がキャプチャされて処理されます

簡単に言うと、 PHP はすべての異常な状況をエラーとして扱います。PHP の組み込み例外クラスには pdoException とリフレクション例外が含まれます。1 PHP 例外の使用方法。番組の予想

.

2 番目のタイプの異常はすぐに発生します

R
<?php 
try{
//可能出错的代码段
if(文件上传不成功)throw(上传异常)
if(插入数据库不成功)throw(数据库操作异常)
}catch(异常){
必须的补救措施,如删除文件,删除数据库插入记录
}
}
E

2 番目のタイプは分散化されており、異常集中キャプチャ

<?php
上传{
if(文件上传不成功)throw (上传异常)
if(插入数据不成功)throw (数据库操作异常)
//其他代码
try{
上传,其他;}
catch(上传异常){
必须的补救措施,删除文件,删除数据插入记录
}catch(其他异常){
记录log
}

3 言語レベル PHPの例外の見方


PHPの例外メカニズムは、どのような例外が発生したかに注意を払う必要があるのに対し、Javaは例外のキャプチャとその後の修復に重点を置いています


最善の方法は、PHP でのエラー処理と組み合わせてこれらを積極的にスローすることです。 異常な .1.6.3 エラー レベル

PHP エラー: 変数が、スクリプトの実行に異常をもたらします。関数または構文が定義されていない場合、文字が引用符番号を追加しない場合、Wolf n WARNING は比較的高レベルのエラーであり、文法的に不適切な状況があります。たとえば、このエラーが実行されない場合は、機能しません。 (0) または関数の前に @

1.6.4 を追加します

1.6.4 PHP のエラー処理メカニズム

PHP にはエラー処理メカニズムがあり、set_error_handler を使用して PHP エラー処理を引き継ぐことができます


set_error_handler(error_function,error_types)

error_function は、エラーが発生したときに実行される関数を指定します。must


             error_types 规定在哪个错误报告级别会显示用户定义的错误,可选

<?php

/**
 * Created by PhpStorm.
 * User: wangkai
 * Date: 2018/3/6
 * Time: 上午10:03
 */
 // 用户定义的错误处理函数
 function myErrorHandler($errno, $errstr, $errfile, $errline) {
     echo "<b>Custom error:</b> [$errno] $errstr<br>";
     echo " Error on line $errline in $errfile<br>";
 }

 // 设置用户定义的错误处理函数
 set_error_handler("myErrorHandler");

 $a=array(&#39;o&#39;=>2,4,5,6);
 echo $a[o];


 ?>

主动抛出异常实现

        

function customError($errno,$errstr,$errfile,$errline){
throw new Exception($level.$errstr);
}
set_error_handler("customeError");
try{
$a=5/0;
}catch(Exception $e){
echo "错误信息:".$e->getMessage();
}

相关推荐:

什么是PHP异常处理

PHP异常处理器的自定义

使用php异常处理类Exception的例子

以上がPHP 例外処理とエラー処理メソッドの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。