ホームページ php教程 php手册 php5例外処理の詳しい説明

php5例外処理の詳しい説明

Jun 21, 2016 am 08:58 AM
echo exception

1 首先是try,catch

$path = "D:\\\\in.txt";
try //检测异常
{
file_open($path);
}
catch(Exception $e) //捕获异常
{
echo $e->getMessage();
}

function file_open($path)
{
if(!file_exists($path)) //如果文件无法找到,抛出异常对象
{
throw new Exception("文件无法找到", 1);
}

if(!fopen($path, "r")) //如果文件无法打开,抛出异常对象
{
throw new Exception("文件无法打开", 2);
}
}
?>
注意用$e->getMessage()输出异常信息. 

2 输出异常完整信息

$path = "D:\\\\in.txt";

try
{
file_open($path); //尝试打开文件
}
catch(Exception $e)
{
echo "异常信息:".$e->getMessage()."\\n"; //返回用户自定义的异常信息
echo "异常代码:".$e->getCode()."\\n"; //返回用户自定义的异常代码
echo "文件名:".$e->getFile()."\\n"; //返回发生异常的PHP程序文件名
echo "异常代码所在行".$e->getLine()."\\n"; //返回发生异常的代码所在行的行号
echo "传递路线:";
print_r($e->getTrace()); //以数组形式返回跟踪异常每一步传递的路线
echo $e->getTraceAsString(); //返回格式化成字符串的getTrace函数信息
}

function file_open($path)
{
if(!file_exists($path)) //如果文件不存在,则抛出错误
{
throw new Exception("文件无法找到", 1);
}

if(!fopen($path, "r"))
{
throw new Exception("文件无法打开", 2);
}
}
?> 


 扩展异常,即自定义异常

class FileExistsException extends Exception{} //用于处理文件不存在异常的类
class FileOpenException extends Exception{} //用于处理文件不可读异常的类

$path = "D:\\\\in.txt";

try
{
file_open($path);
}
catch(FileExistsException $e) //如果产生FileExistsException异常则提示用户确认文件位置
{
echo "程序在运行过程中发生了异常:".$e->getMessage()."\\n";
echo "请确认文件位置。";
}
catch(FileOpenException $e) //如果产生FileOpenException异常则提示用户确认文件的可读性
{
echo "程序在运行过程中发生了异常:".$e->getMessage()."\\n";
echo "请确认文件的可读性。";
}
catch(Exception $e)
{
echo "[未知异常]";
echo "异常信息:".$e->getMessage()."\\n"; //返回用户自定义的异常信息
echo "异常代码:".$e->getCode()."\\n"; //返回用户自定义的异常代码
echo "文件名:".$e->getFile()."\\n"; //返回发生异常的PHP程序文件名
echo "异常代码所在行".$e->getLine()."\\n"; //返回发生异常的代码所在行的行号
echo "传递路线:";
print_r($e->getTrace()); //以数组形式返回跟踪异常每一步传递的路线
echo $e->getTraceAsString(); //返回格式化成字符串的getTrace函数信息
}

function file_open($path)
{
if(!file_exists($path))
{
throw new FileExistsException("文件无法找到", 1); //抛出FileExistsException异常对象
}

if(!fopen($path, "r"))
{
throw new FileOpenException("文件无法打开", 2); //抛出FileOpenException异常对象

}
}
?> 

4 例外を上位層に再スローします

class FileExistsException extends Exception{} //ファイルが存在しない例外の処理に使用されるクラス
class FileOpenException extends Exception{ } // 読み取り不可能なファイルの例外を処理するクラス

$path = "D:\\in.txt";

try
{
file_open($path); >}
catch(FileExistsException $e) //FileExistsException が発生した場合、ユーザーはファイルの場所を確認するよう求められます
{
echo "プログラムの実行中に例外が発生しました:".$ e->getMessage( )."\n";
echo "ファイルの場所を確認してください。";
}
catch(FileOpenException $e) //FileOpenException 例外が発生した場合、ユーザーはファイルの可読性を確認するよう求められました
{
echo "プログラムの実行中に例外が発生しました: ".$e->getMessage()."\n";
echo "確認してくださいファイルの可読性。";
}
catch(Exception $e)
{
echo "[不明な例外]";
echo "例外メッセージ: ".$e-> ;getMessage()."\n"; // ユーザー定義の例外情報を返します
echo "例外コード:".$e->getCode()."\n";
echo "File name:". $e->getFile()."\n"; //例外が発生した PHP プログラム ファイルの名前を返します
echo "例外コードが存在する行located".$e->getLine()."\n"; / /例外が発生した行の行番号を返す
echo "送信経路:";
print_r($e->gt; getTrace()); // 追跡例外の各ステップのルートを配列の形式で返します
echo $e->getTraceAsString(); // getTrace 関数の情報を文字列として返します
}

function file_open($path)
{
try
{
if(!file_exists($path))
{
throw new FileExistsException("ファイルはできません見つかります", 1);
}

if(!fopen($path , "r"))
{
throw new FileOpenException("ファイルを開けません", 2) ;
}
}
catch(Exception $e) //例外をキャッチします
{
echo "file_open 関数の操作中に例外が発生しました"; //例外を再スローします
}
}
?>



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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java での ConcurrentModificationException 例外の原因と解決策 Java での ConcurrentModificationException 例外の原因と解決策 Jun 25, 2023 am 10:33 AM

Java では、複数のスレッドがコレクション オブジェクトを同時に操作すると、ConcurrentModificationException 例外が発生することがあります。この例外は通常、要素を変更または削除するときにコレクションを走査するときに発生します。これにより、コレクションの状態が不整合になり、異常なエラーがスローされます。 。この記事では、この例外の原因と解決策について詳しく説明します。 1. 例外の原因 通常はConcurrentModificationException例外

テクノロジーの世界を探索できる、厳選された 5 つの Go 言語オープンソース プロジェクト テクノロジーの世界を探索できる、厳選された 5 つの Go 言語オープンソース プロジェクト Jan 30, 2024 am 09:08 AM

今日の急速な技術発展の時代では、雨後の筍のようにプログラミング言語が出現しています。多くの注目を集めている言語の 1 つは Go 言語です。Go 言語は、そのシンプルさ、効率性、同時実行の安全性などの機能により多くの開発者に愛されています。 Go 言語は、多くの優れたオープンソース プロジェクトがある強力なエコシステムで知られています。この記事では、厳選された 5 つの Go 言語オープンソース プロジェクトを紹介し、読者を Go 言語オープンソース プロジェクトの世界へ導きます。 KubernetesKubernetes は、自動化されたオープンソースのコンテナ オーケストレーション エンジンです。

Go 言語開発の要点: 5 つの人気のあるフレームワークの推奨事項 Go 言語開発の要点: 5 つの人気のあるフレームワークの推奨事項 Mar 24, 2024 pm 01:15 PM

「Go 言語開発の要点: 5 つの人気フレームワークの推奨事項」 高速で効率的なプログラミング言語として、Go 言語はますます多くの開発者に好まれています。開発効率を向上させ、コード構造を最適化するために、多くの開発者はフレームワークを使用してアプリケーションを迅速に構築することを選択します。 Go 言語の世界には、選択できる優れたフレームワークが数多くあります。この記事では、5 つの人気のある Go 言語フレームワークを紹介し、読者がこれらのフレームワークをよりよく理解して使用できるように、具体的なコード例を示します。 1.GinGin は高速な軽量 Web フレームワークです。

Golang の Web フレームワーク Echo フレームワークを使用した分散タスク スケジューリングの実装 Golang の Web フレームワーク Echo フレームワークを使用した分散タスク スケジューリングの実装 Jun 24, 2023 am 11:49 AM

インターネットの発達や情報技術の進歩によりビッグデータの時代が到来し、データ分析や機械学習などの分野も広く活用されています。これらの分野では、タスクのスケジューリングは避けられない問題です。効率的なタスクのスケジューリングを実現する方法は、効率を向上させるために重要です。この記事では、Golang の Web フレームワーク Echo フレームワークを使用して分散タスク スケジューリングを実装する方法を紹介します。 1. Echo フレームワークの概要 Echo は、高性能、スケーラブル、軽量の GoWeb フレームワークです。 HTTPに基づいています

Laravel 開発: Laravel Echo と Pusher を使用して WebSocket 通信を実装するにはどうすればよいですか? Laravel 開発: Laravel Echo と Pusher を使用して WebSocket 通信を実装するにはどうすればよいですか? Jun 13, 2023 pm 05:01 PM

Laravel は、拡張性と効率性に優れた人気の PHP フレームワークであり、開発者が高品質の Web アプリケーションを迅速に構築できる強力なツールとライブラリを多数提供しています。その中でも、LaravelEcho と Pusher は、WebSocket 通信を簡単に実装できる 2 つの非常に重要なツールであり、この記事では、Laravel アプリケーションでこれら 2 つのツールを使用する方法について詳しく説明します。 WebSocket とは何ですか? Webソケット

PHPにおけるechoキーワードの役割と使い方の詳しい説明 PHPにおけるechoキーワードの役割と使い方の詳しい説明 Jun 28, 2023 pm 08:12 PM

PHP における echo キーワードの役割と使用法の詳細な説明 PHP は、Web 開発で広く使用されているサーバーサイド スクリプト言語です。 echo キーワードは、PHP でコンテンツを出力するために使用されるメソッドです。この記事では、echoキーワードの機能と使い方を詳しく紹介します。機能: echo キーワードの主な機能は、コンテンツをブラウザに出力することです。 Web 開発では、フロントエンド ページにデータを動的に表示する必要がありますが、このとき、echo キーワードを使用してデータをページに出力できます。 e

Go 言語フレームワークを探索する: 見逃せない 5 つの選択肢! Go 言語フレームワークを探索する: 見逃せない 5 つの選択肢! Feb 19, 2024 pm 02:29 PM

Go 言語は、高速で効率的なプログラミング言語として、常にプログラマーに好まれてきました。 Go 言語エコシステムでは、フレームワークは、開発者がアプリケーションをより迅速に構築できるようにする上で重要な役割を果たします。この記事では、Go 言語のフレームワークを 5 つ紹介し、それぞれの特徴と使い方を理解します。 1. Gin フレームワーク Gin フレームワークは、高速で高性能な特性を備えた軽量の Web フレームワークです。 Jin フレームワークを使用して、RESTful API と Web アプリケーションを迅速に構築します。簡単なコード例を次に示します。

Java で UnsupportedEncodingException に対処するにはどうすればよいですか? Java で UnsupportedEncodingException に対処するにはどうすればよいですか? Jun 25, 2023 am 08:02 AM

Java で UnsupportedEncodingException に対処するにはどうすればよいですか? Java プログラミングでは、UnsupportedEncodingException が発生する場合があります。この例外は通常、間違ったエンコード変換またはサポートされていないエンコードによって発生します。この記事では、UnsupportedEncodingException例外の原因と対処法を紹介します。サポート対象外とは何ですか?

See all articles