Maison développement back-end tutoriel php PHP的异常处理类Exception的使用及说明_PHP

PHP的异常处理类Exception的使用及说明_PHP

Jun 01, 2016 pm 12:11 PM
exception

1、首先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(); // 可输出的字符串
}
?>

简单的使用如下:(通过异常,抛出错误信息)
复制代码 代码如下:
try {
$error = 'my error!';
throw new Exception($error)
} catch (Exception $e) {
echo $e->getMessage();
}

2、我们可以扩展此类,方便我们的使用
复制代码 代码如下:
class MyException extends Exception
{
// 重定义构造器使 message 变为必须被指定的属性
public function __construct($message, $code = 0) {
// 自定义的代码
// 确保所有变量都被正确赋值
parent::__construct($message, $code);
}
// 自定义字符串输出的样式
public function __toString() {
return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
}
public function customFunction() {
echo "A Custom function for this type of exception\n";
}
}

异常处理的基本思想是代码在try代码被调用执行。如果try码块出现错误,我们可以执行一个抛出异常的处理。某些编程语言,如java,,在特定情况下将自动抛出异常。在php中,异常必须手动抛出。可以使用如下方式抛出一个异常:
  Throw new Exception(‘message',code);
  Throw 关键字将触发异常处理机制,它是一个语言结构,而不是一个函数,但是必须给它传递一个值。它要求一个接受对象。在最简单的情况下,可以实例化一个内置的Exception类。
  最后,在try代码之后,必须至少给出一个catch代码块。可以将多个catch代码块与一个try代码块进行关联。如果每个catch代码块可以捕获一个不同类型的异常,可以使用多个catch代码块是有意义的。例如,如果想捕获Exception类的异常,代码如下
复制代码 代码如下:
Catch(Exception $e)
{
//handing exception
}
Catch代码捕获的对象就是导致异常并传递给throw语句的对象(被throw 语句抛出)。使用Exception 类的实例,是不错的选择。
Exception类提供了如下的内置方法:
  Getcode()   —返回传递给构造函数的代码。
  GetMessage() —返回传递给构造函数的消息。
  getFile()     —返回产生异常代码的文件的路径
  getLine()    —返回产生异常的代码所在的行。

注意:
当捕获到一个异常后,try()块里面的后续代码将不会继续执行,而是会尝试查找匹配的“catch”代码块
当抛出一个异常后,如果不进行catch处理,则会报“Uncaught exception 'Exception'”错误
复制代码 代码如下:
function test($val){
if ($val>100){
throw new Exception("提示信息:您输入的值过大");
}
}
test(111);
?>

3.当一个异常抛出后,catch语句块可以进行处理也可以不处理
以下是我用户注册功能的部分代码
复制代码 代码如下:
try{
//check forms filled in
if(!filled_out($_POST)){
throw new Exception('你还没有填写表单,请回去填写');
}
//check email address not valid
if(!check_email($email)){
throw new Exception('邮件的格式不正确');
}
//检查密度的长度是否大于6
if(strlen($passwdthrow new Exception('密度的长度应该大于6');
}
//检查两次密码是否相等
if($passwd!=$passwd1){
throw new Exception('两次密码不一样,请重新输入');
}
//检查用户名的长度是否正确
if(strlen($username)>16){
throw new Exception('用户名的长度不符,请重新输入');
}
} catch(Exception $e){
echo $e->getMessage(); //输出异常信息。
}

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Causes et solutions aux exceptions ConcurrentModificationException en Java Causes et solutions aux exceptions ConcurrentModificationException en Java Jun 25, 2023 am 10:33 AM

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

Solution à l'erreur fatale PHP : exception non interceptée 'PDOException' Solution à l'erreur fatale PHP : exception non interceptée 'PDOException' Jun 23, 2023 pm 12:09 PM

Dans le développement PHP, vous pouvez rencontrer des erreurs telles que "PHPFatalerror:Uncaughtexception'PDOException'". Il s'agit d'une exception provoquée par une erreur lorsque PHP exploite la base de données. Si cette erreur n'est pas traitée à temps, elle entraînera une interruption du programme ou des erreurs inattendues. Alors comment résoudre ce problème ? Voici quelques solutions courantes. 1. Vérifiez les paramètres de la base de données. Tout d'abord, nous devons vérifier les paramètres transmis lors de la connexion à la base de données.

Comment gérer UnsupportedEncodingException en Java ? Comment gérer UnsupportedEncodingException en Java ? Jun 25, 2023 am 08:02 AM

Comment gérer UnsupportedEncodingException en Java ? En programmation Java, vous pouvez rencontrer UnsupportedEncodingException. Cette exception est généralement provoquée par une conversion de codage incorrecte ou par un codage non pris en charge. Dans cet article, nous présenterons les causes de l’exception UnsupportedEncodingException et comment y remédier. Qu'est-ce qui n'est pas pris en charge ?

Quelles sont les causes courantes de ConcurrentModificationException en Java ? Quelles sont les causes courantes de ConcurrentModificationException en Java ? Jun 25, 2023 am 11:07 AM

Quelles sont les causes courantes de ConcurrentModificationException en Java ? Lors du parcours d'une collection à l'aide d'un itérateur dans l'infrastructure de collection Java, une exception ConcurrentModificationException est parfois levée, ce qui est l'une des exceptions Java courantes. Alors, quelle est la raison de cette exception ? Tout d’abord, nous devons comprendre que les itérateurs fournis par le framework de collection Java sont avec état. Autrement dit, lors du parcours

Solution à l'exception ArrayStoreException en Java Solution à l'exception ArrayStoreException en Java Jun 25, 2023 am 08:05 AM

Dans le développement Java, nous utilisons souvent des tableaux pour stocker une série de données en raison des avantages de commodité et de performances des tableaux. Cependant, lors du processus d'utilisation des tableaux, certaines exceptions se produiront, et l'une des exceptions courantes est ArrayStoreException. Cette exception est levée lorsque nous stockons des types de données incompatibles dans le tableau. Cet article présente ce qu'est une ArrayStoreException, pourquoi elle se produit et comment la résoudre. 1. Arrêter

Quelles sont les causes courantes d'ArrayStoreException en Java ? Quelles sont les causes courantes d'ArrayStoreException en Java ? Jun 25, 2023 am 09:48 AM

En programmation Java, le tableau est une structure de données importante. Les tableaux peuvent stocker plusieurs valeurs dans une seule variable et, plus important encore, chaque valeur est accessible à l'aide d'un index. Mais lorsque vous travaillez avec des tableaux, certaines exceptions peuvent survenir, l'une d'elles est ArrayStoreException. Cet article abordera les causes courantes des exceptions ArrayStoreException. 1. Incompatibilité de type Le type d'élément doit être spécifié lors de la création du tableau. Lorsque nous essayons de stocker des types de données incompatibles dans un tableau, cela renvoie

En Java, quelle est la différence entre la classe Exception et la classe Error ? En Java, quelle est la différence entre la classe Exception et la classe Error ? Sep 09, 2023 pm 12:05 PM

La classe Exception et la classe Error sont toutes deux des sous-classes de la classe java.lang.Throwable Nous pouvons gérer les exceptions d'exécution, mais pas les erreurs. Les exceptions sont des objets qui représentent des erreurs logiques qui se produisent lors de l'exécution, provoquant l'entrée de la JVM dans un état « ambigu ». Les objets créés automatiquement par la JVM pour représenter ces erreurs d'exécution sont appelés exceptions. Error est une sous-classe de la classe Throwable qui indique des problèmes graves que les applications raisonnables ne devraient pas tenter de détecter. La plupart de ces erreurs sont des anomalies. Si une exception se produit, nous pouvons utiliser des blocs try et catch pour la gérer. Si une erreur que nous ne pouvons pas gérer se produit, le programme se terminera. Il existe deux types d'exceptions, l'une est CheckedExce

Solution à l'exception UnsupportedEncodingException en Java Solution à l'exception UnsupportedEncodingException en Java Jun 25, 2023 am 08:48 AM

UnsupportedEncodingException peut se produire en Java, principalement parce que l'encodage n'est pas pris en charge. Lors du traitement de données textuelles, il est souvent nécessaire d'effectuer une conversion de codage, c'est-à-dire de convertir le contenu d'un format de codage en contenu d'un autre format de codage. Si le type d’encodage utilisé pour la conversion d’encodage n’est pas pris en charge, une exception UnsupportedEncodingException sera levée. Cet article présentera la solution à cette exception. un,

See all articles