php5异常处理详解
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 "文件名:".$e->getFile()."\\n"; //返回发生异常的PHP程序文件名
echo "异常代码所在行".$e->getLine()."\\n"; //返回发生异常的代码所在行的行号
echo "传递路线:";
print_r($e->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函数在运行过程中出现异常";
throw $e; //重掷异常
}
}
?>

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





En Java, lorsque plusieurs threads exploitent un objet de collection en même temps, une exception ConcurrentModificationException peut se produire. Cette exception se produit généralement lors de la traversée de la collection lors de la modification ou de la suppression d'éléments. Cela entraînera une incohérence de l'état de la collection, ce qui générera des anomalies. . Cet article examinera les causes et les solutions à cette exception. 1. Causes de l'exception Normalement, exception ConcurrentModificationException

À l'ère actuelle de développement technologique rapide, les langages de programmation poussent comme des champignons après la pluie. L'un des langages qui a beaucoup retenu l'attention est le langage Go, apprécié par de nombreux développeurs pour sa simplicité, son efficacité, sa sécurité de concurrence et d'autres fonctionnalités. Le langage Go est connu pour son écosystème solide avec de nombreux excellents projets open source. Cet article présentera cinq projets open source sélectionnés en langage Go et amènera les lecteurs à explorer le monde des projets open source en langage Go. KubernetesKubernetes est un moteur d'orchestration de conteneurs open source pour l'automatisation

"Go Language Development Essentials : 5 recommandations de framework populaires" En tant que langage de programmation rapide et efficace, le langage Go est favorisé par de plus en plus de développeurs. Afin d'améliorer l'efficacité du développement et d'optimiser la structure du code, de nombreux développeurs choisissent d'utiliser des frameworks pour créer rapidement des applications. Dans le monde du langage Go, il existe de nombreux excellents frameworks parmi lesquels choisir. Cet article présentera 5 frameworks de langage Go populaires et fournira des exemples de code spécifiques pour aider les lecteurs à mieux comprendre et utiliser ces frameworks. 1.GinGin est un framework Web léger avec une rapidité

Laravel est un framework PHP populaire, hautement évolutif et efficace. Il fournit de nombreux outils et bibliothèques puissants qui permettent aux développeurs de créer rapidement des applications Web de haute qualité. Parmi eux, LaravelEcho et Pusher sont deux outils très importants grâce auxquels la communication WebSockets peut être facilement implémentée. Cet article détaillera comment utiliser ces deux outils dans les applications Laravel. Que sont les WebSockets ? WebSockets

Explication détaillée du rôle et de l'utilisation du mot-clé echo en PHP PHP est un langage de script côté serveur largement utilisé dans le développement Web. Le mot-clé echo est une méthode utilisée pour générer du contenu en PHP. Cet article présentera en détail la fonction et l'utilisation du mot-clé echo. Fonction : La fonction principale du mot-clé echo est de transmettre du contenu au navigateur. Dans le développement Web, nous devons présenter dynamiquement les données sur la page frontale. À ce stade, nous pouvons utiliser le mot-clé echo pour afficher les données sur la page. e

Les frameworks Go les plus populaires actuellement sont : Gin : framework web léger et performant, simple et facile à utiliser. Echo : un framework Web rapide et hautement personnalisable qui fournit un routage et un middleware hautes performances. GorillaMux : Un multiplexeur rapide et flexible qui offre des options de configuration de routage avancées. Fibre : un framework Web hautes performances optimisé pour les performances qui gère un nombre élevé de requêtes simultanées. Martini : un framework Web modulaire avec une conception orientée objet qui fournit un riche ensemble de fonctionnalités.

En tant que langage de programmation rapide et efficace, le langage Go a toujours été privilégié par les programmeurs. Dans l'écosystème du langage Go, les frameworks jouent un rôle essentiel en aidant les développeurs à créer des applications plus rapidement. Cet article présentera cinq frameworks de langage Go pour vous permettre de comprendre leurs caractéristiques et leur utilisation. 1. Framework Gin Le framework Gin est un framework Web léger avec des caractéristiques rapides et hautes performances. Utilisez le framework Gin pour créer rapidement des API et des applications Web RESTful. Voici un exemple de code simple :

Avec le développement d'Internet et les progrès des technologies de l'information, l'ère du Big Data est arrivée, et des domaines tels que l'analyse des données et l'apprentissage automatique ont également été largement utilisés. Dans ces domaines, la planification des tâches est un problème inévitable. Comment parvenir à une planification efficace des tâches est crucial pour améliorer l’efficacité. Dans cet article, nous présenterons comment utiliser le framework Web Echo de Golang pour implémenter la planification distribuée des tâches. 1. Introduction au framework Echo Echo est un framework GoWeb hautes performances, évolutif et léger. Il est basé sur HTTP
