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 番目のタイプの異常はすぐに発生します
<?php try{ //可能出错的代码段 if(文件上传不成功)throw(上传异常) if(插入数据库不成功)throw(数据库操作异常) }catch(异常){ 必须的补救措施,如删除文件,删除数据库插入记录 } }
2 番目のタイプは分散化されており、異常集中キャプチャ
<?php 上传{ if(文件上传不成功)throw (上传异常) if(插入数据不成功)throw (数据库操作异常) //其他代码 try{ 上传,其他;} catch(上传异常){ 必须的补救措施,删除文件,删除数据插入记录 }catch(其他异常){ 记录log }
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_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('o'=>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 中国語 Web サイトの他の関連記事を参照してください。