异常最常见于SDK调用中,函数执行失败时抛出异常,顺带错误码和错误信息。

先来看下PHP的异常处理相关函数:

public Exception::__construct() ([ string $message = "" [, int $code = 0 [, Exception $previous = NULL ]]] )

构造函数:第一个参数$message为错误信息,第二个参数$code为错误码,第三个参数$previous为前一个异常

函数组:

获取异常的错误码:
final public mixed Exception::getCode ( void )
获取异常的错误信息:
final public string Exception::getMessage ( void )
获取异常发生的文件信息:
final public string Exception::getFile ( void )
获取异常发生在文件的哪一行
final public int Exception::getLine ( void )
获取前一个异常信息:
final public Exception Exception::getPrevious ( void )

最常用的是getCode和getMessage函数。

实例1:

<?php
class test
{
public function run($num)
{
try{
$this->process($num);
} catch (Exception $e) {
echo sprintf("Errno:%d Error:%s", $e->getCode(), $e->getMessage());
}
} public function process($num)
{
switch($num) {
case 1: throw new Exception("error", $num);break;
default:return $num;
}
return;
}
} $app = new test();
$app->run(1);

输出:

Errno:1 Error:error

问题1:异常被抛出后之后的流程会不会执行?答案是:不会的,函数在抛出异常处返回,注意在获取异常处是会继续执行的。

实例2

<?php
class test
{
public function run($num)
{
try{
$this->process($num);
} catch (Exception $e) {
echo sprintf("Errno:%d Error:%s", $e->getCode(), $e->getMessage());
}
} public function process($num)
{
switch($num) {
case 1: throw new Exception("error", $num);echo "new exception\n";break;
default:return $num;
}
return;
}
} $app = new test();
$app->run(1);

输出结果:

Errno:1 Error:error

注意:throw之后的echo语句没有被执行。

关于更多Exception的主题说明:http://docs.oracle.com/javase/tutorial/essential/exceptions/advantages.html

PHP: 异常exception的更多相关文章

  1. Atitit java的异常exception 结构Throwable类

    Atitit java的异常exception 结构Throwable类 1.1. Throwable类 2.StackTrace栈轨迹1 1.2. 3.cause因由1 1.3. 4.Suppres ...

  2. 05_Java异常(Exception)

    1. 异常的概念 1.1什么是异常 异常指的是程序运行时出现的不正常情况. 1.2异常的层次 Java的异常类是处理运行时的特殊类,每一种异常对应一种特定的运行错误.所有Java异常类都是系统类库中E ...

  3. 异常Exception in thread "AWT-EventQueue-XX" java.lang.StackOverflowError

    今天太背了,bug不断,检查到最后都会发现自己脑残了,粗心写错,更悲剧的是写错的时候还不提示错. 刚才有遇到一个问题,抛了这个异常Exception in thread "AWT-Event ...

  4. Sqoop异常:Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject

    18/12/07 01:09:03 INFO mapreduce.ImportJobBase: Beginning import of staffException in thread "m ...

  5. 异常 Exception 堆栈跟踪 异常捕获 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  6. 理解Python语言里的异常(Exception)

    Exception is as a sort of structured "super go to".异常是一种结构化的"超级goto". 作为一个数十年如一日 ...

  7. PL/SQL 08 异常 exception

    --PL/SQL错误  编译时  运行时 --运行时的出错处理  EXCEPTION --异常处理块DECLARE …BEGIN …EXCEPTION WHEN OTHERS THEN  handle ...

  8. 【马克-to-win】学习笔记—— 第五章 异常Exception

    第五章 异常Exception [学习笔记] [参考:JDK中文(类 Exception)] java.lang.Object java.lang.Throwable java.lang.Except ...

  9. 【异常】Maxwell异常 Exception in thread "main" net.sf.jsqlparser.parser.TokenMgrError: Lexical error at line 1, column 596. Encountered: <EOF> after : ""

    1 详细异常 Exception in thread "main" net.sf.jsqlparser.parser.TokenMgrError: Lexical error at ...

  10. 异常-Exception in thread "main" net.sf.jsqlparser.parser.TokenMgrError: Lexical error at line 1, column 596. Encountered: <EOF> after :

    1 详细异常 Exception in thread "main" net.sf.jsqlparser.parser.TokenMgrError: Lexical error at ...

随机推荐

  1. blog地址

    1  Java 设计模式  http://www.cnblogs.com/java-my-life/

  2. 转:Web网站性能测试分析及调优实例

    1.背景 前段时间,性能测试团队经历了一个规模较大的门户网站的性能优化工作,该网站的开发和合作涉及多个组织和部门,而且网站的重要性不言而喻,同时上线时间非常紧迫,关注度也很高,所以对于整个团队的压力也 ...

  3. openstack私有云布署实践【13.1 网络Neutron-compute节点配置(科兴环境)】

    所有kxcompute节点 下载安装组件   # yum install openstack-neutron openstack-neutron-linuxbridge ebtables ipset ...

  4. C#获取网页内容 (WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)

    获取网页数据有很多种方式.在这里主要讲述通过WebClient.WebBrowser和HttpWebRequest/HttpWebResponse三种方式获取网页内容. 这里获取的是包括网页的所有信息 ...

  5. Apache Kafka开发入门指南(1)

    Apache Kafka可以帮助你解决在发布/订阅架构中遇到消费数百万消息的问题.如今,商业应用.社交应用以及其它类型的应用产生的实时信息在不断增长,这些信息需要以简单的方式快速.可靠地路由到各种类型 ...

  6. POJ 1862 Stripies#贪心(水)

    (- ̄▽ ̄)-* #include<iostream> #include<cstdio> #include<cmath> #include<algorithm ...

  7. kettle连接mysql

    kettle连接mysql时出现问题

  8. 一步一步学EF系列3【升级篇 实体与数据库的映射】

    之前的三张为基础篇,如果不考虑架构问题,做一般的小程序,以足够用了.基本的增删改查也都有了.但是作为学习显然是不够的.通过之前三章的学习,有没有发现这样写有什么问题,有没有觉得繁琐的?可能有人会说,之 ...

  9. 核心梳理——消息处理的骨架流程——ESFramework 4.0 进阶(02)

    在ESFramework 4.0 概述一文中,我们提到ESFramework.dll作为通信框架的核心,定义了消息处理的骨架流程,本文我们来详细剖析这个流程以及该骨架中所涉及的各个组件.ESFrame ...

  10. NOIP2014-普及组复赛-第二题-比例简化

    题目描述 Description 在社交媒体上,经常会看到针对某一个观点同意与否的民意调查以及结果.例如,对某一观点表示支持的有1498 人,反对的有 902人,那么赞同与反对的比例可以简单的记为14 ...