`
zhengdl126
  • 浏览: 2531596 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

try{}catch{}

    博客分类:
  • php
 
阅读更多

<?php


/*

检测(try)、抛出(throw)和捕获(catch)异常。一个 try 至少要有一个与之对应的 catch。定义多个 catch 可以捕获不同的对象。
PHP 会按这些 catch 被定义的顺序执行,直到完成最后一个为止。而在这些 catch 内,又可以抛出新的异常。
*/

 

 




/*
try {
    $error = 'Always throw this error';
    throw new Exception($error);

    // 从这里开始,try 代码块内的代码将不会被执行
    echo 'Never executed';

} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

// 继续执行
echo 'Hello World';
*/





/*
try {
    echo 1/0;
} catch(Exception $e) {
    echo $e->getMessage();
}


*/

 

 

 

/*

 

 try{
                    $filter = ClassLoader::getInstance($obj_filter);
                    self::$_cacheStore->put($cacheKeyName, $filter);
                }catch(SystemException $e){
                    $e->message = $e->getMessage() . '[in'.__FILE__.', line:'.__LINE__.' ]';
                    throw $e;
                }

*/

 

 

 

======================================

 



class SystemException extends Exception{

    const PHP_ERROR = '100';
   
    const FRAMEWORK_ERROR = '200';
   
    const CACHE_ERROR = '300';
   
    const DB_ERROR = '400';
   
    const DAO_ERROR = '500';

    public $type;
    public $message;
   
    public $id; 

    public function SystemException($type,$message="",$id=1000) {
        $this->type = $type;
        $this->message = $message;
        $this->id = $id;
    }
}





    function get_my_uri($encode = 0, $cache = 1){
        static $retval = false;
        if ($cache && $retval !== false)
        return $retval;
        @$protocol = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http';
        $port = $_SERVER['SERVER_PORT'];
        if ($protocol == 'http' && $port == '80')
        $port = '';
        else if ($protocol == 'https' && $port == '443')
        $port = '';
        else
        $port = ":$port";
        @$http_host  = $_SERVER['SERVER_NAME'];
        $request_uri = $_SERVER['REQUEST_URI'];
        $retval = "$protocol://$http_host$port$request_uri";
        if ($encode)
        $retval = urlencode($retval);
        return $retval;
    }

try{
    $error = 'Always throw this error';
   throw new SystemException($error);
   echo 'Never executed';
}catch(SystemException $e){
    $msg = "Error request url:" . get_my_uri();
    $msg .= "\nSystemException";
    $msg .= "\nID:". $e->id;
    $msg .= "\nTYPE:". $e->type;
    $msg .= "\nMESSAGE:" . $e->message;
    $msg .= "\n";
    echo $msg;
    // log_error($msg);
    //header_to('error.htm')

}


?>

分享到:
评论

相关推荐

    Springboot全局异常捕获及try catch区别解析

    Springboot全局异常捕获及try catch区别解析 Springboot全局异常捕获是一种机制,用于捕获并处理应用程序中的异常情况,以便提供友好的用户体验和错误处理。try catch语句是Java语言中的一种异常处理机制,用于捕获...

    trycatch.zip

    本示例中的"trycatch.zip"文件内容就是展示了如何在Golang中模拟`try...catch`和`try...catch...finally`。 Golang的核心错误处理方式是通过返回错误值。通常,函数会返回一个错误值,如果在执行过程中遇到问题,就...

    C# 中的try catch finall 的使用方法

    在C#编程中,异常处理是程序健壮性的重要组成部分,`try-catch-finally`语句块就是C#提供的一种处理运行时错误的方式。它允许程序员在代码可能抛出异常的地方进行捕获并处理,确保即使在异常情况下,程序也能以一种...

    C语言模拟实现 try catch

    在C语言中,使用goto和标签的方式模拟try catch的功能,使用setjmp和longjmp方式模拟try catch的功能,两种方式都可以使用,setjmp的方式可以支持try catch嵌套,goto的方式不支持嵌套,但是jmpbuf的开销是比较大的...

    java中try catch的用法

    ### Java中try-catch的用法详解 #### 一、基本概念 在Java编程语言中,`try-catch`结构是一种用于处理程序运行时可能出现的异常情况的重要机制。通过使用`try-catch`块,开发者可以更加精细地控制程序的行为,并...

    异常处理try catch在vc中的用法.zip visual c++ try catch处理异常

    在Visual C++(简称VC)环境下,我们可以利用`try`、`catch`关键字来实现异常处理。下面我们将深入探讨这些知识点。 首先,`try`块是异常处理的起点,它包围了可能抛出异常的代码。如果在`try`块内发生了异常,程序...

    Try Catch对效能的影响测试

    在VB.NET编程中,`Try...Catch`语句块是一个重要的异常处理机制,它用于捕获和处理程序运行时可能出现的错误。这个测试是针对`Try...Catch`块对程序性能影响的一个研究,旨在理解在代码中使用异常处理时可能产生的...

    VB.NET Try Catch Finally用法演示源码.rar

    VB.NET 演示带Finally的Try Catch 异常处理用法演示,这个源码就是捕捉VB.NET运行错误的,结合了最常规的try catch组合,并且使用了Finally处理的情况,那么为什么要使用Finally呢?使用Finally的好处是,把资源释放...

    前端开源库-trycatch

    **前端开源库——Trycatch详解** 在Web开发中,异常处理是确保代码健壮性和稳定性的重要环节。前端开源库Trycatch就是专为了解决这个问题而诞生的,它提供了一种基于异步领域的异常处理机制,尤其针对Node.js环境,...

    一个自动给async函数注入trycatch的webpackloader

    在本案例中,我们关注的是一个名为“async-catch-loader”的webpack loader,它旨在自动化这个过程,即在编译阶段自动为async函数添加try/catch结构。 Webpack是前端开发中广泛使用的模块打包工具,它通过加载器...

    java try…catch嵌套捕获异常的实例

    `try-catch`语句块用于捕获和处理可能出现的异常,确保程序在遇到错误时不会立即终止,而是能够优雅地处理问题并继续执行。当一个`try`块中的代码抛出异常,相应的`catch`块将捕获该异常并执行相应的处理代码。在...

    c++中try catch的用法小结

    C++ 中 try catch 的用法小结 try catch 机制是 C++ 编程语言中的一种异常处理机制,它允许程序员捕捉和处理在程序执行过程中出现的异常情况。下面将详细介绍 C++ 中 try catch 的用法。 基本概念 在 C++ 中,try...

    await包装器以便在没有trycatch的情况下更容易地处理错误

    为了在不使用`try-catch`块的情况下优雅地处理这些错误,我们可以创建一个`await`包装器。这样的包装器可以帮助我们更好地管理和控制异步错误,同时保持代码的简洁性。 首先,让我们理解`async/await`的基础。`...

    try 与 catch finally关键字

    Java的 try 与 catch finally关键字的使用

    利用golang实现封装trycatch异常处理实例代码

    这里我们将探讨如何利用一个名为`trycatch`的第三方包来实现这种异常处理机制。 首先,我们来看一下`trycatch`包的核心概念。它通过创建一个`TryCatch`结构体,该结构体包含一个错误通道`errChan`用于传递捕获到的...

    java try…catch捕获异常的实例

    `try-catch`块是Java异常处理的核心部分,它允许程序员在代码可能出现问题的地方进行异常捕获和处理,避免程序因未预期的错误而崩溃。下面我们将详细讨论`try-catch`捕获异常的实例。 首先,`try`块是包含可能抛出...

    javascript中 try catch用法

    JavaScript中的try catch语句是ECMAScript规范提供的异常处理机制,它允许程序捕捉执行过程中发生的错误,并执行错误处理代码,避免整个程序因为一个错误而崩溃。在JavaScript开发中,try catch语句的使用非常频繁,...

    try_catch效率

    在编程领域,异常处理是确保程序健壮性的重要机制,`try-catch`语句块就是其中的关键元素。`try-catch`用于捕获并处理程序运行时可能出现的错误或异常,防止程序因未预期的状况而崩溃。然而,一个常见的疑问是:`try...

Global site tag (gtag.js) - Google Analytics