有没有一种方法可以捕获异常而无需创建变量?

2024-04-11

在 PHP 中,我有时会使用 try/catch 捕获一些异常:

try {
    ...
} catch (Exception $e) {
    // Nothing, this is a test that an exception is thrown.
}

通过这种代码,我最终得到了变量$e它是无缘无故创建的(大量资源),并且 PHP_MD(PHP 混乱检测器)会因为未使用的变量而创建警告。


从 PHP 8 开始,可以使用非捕获 catch。

这是相关的RFC https://wiki.php.net/rfc/non-capturing_catches,以 48 比 1 的投票结果。

现在可以做这样的事情:

try {
    readFile($file);
} catch (FileDoesNotExist) {
    echo "File does not exist";
} catch (UnauthorizedAccess) {
    echo "User does not have the appropriate permissions to access the file";
    log("User attempted to access $file");
}

这样,对于某些异常详细信息不相关且异常类型已提供所有必要上下文的边缘情况,无需创建新变量即可捕获异常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有一种方法可以捕获异常而无需创建变量? 的相关文章

  • 如何从 PHP 中的字符串创建可能的字符串组合?

    如何从 PHP 中的字符串创建可能的字符串组合 Exp input abc output array 0 gt a 1 gt ab 2 gt abc 3 gt ac 4 gt acb 5 gt b 6 gt ba 7 gt bac 8 gt
  • 我的设置未保存在 WordPress 主题选项页面中

    我正在尝试创建一个基于 WordPress 设置 API 的主题选项页面 当我在浏览器中检查 options php 页面时 例如http mysite com wordpress wp admin options php http mys
  • 在 PHP 中设置 HTTP 响应代码(在 Apache 下)

    给出以下两种在 PHP 中设置 HTTP 响应代码的方法 具体来说 在 Apache 下 方法一 http response code 404 方法二 header HTTP 1 0 404 Not Found 我的问题是 除了这个事实之外
  • node-mongodb-native的插入性能

    我正在使用 MongoDB 测试 Node js 的性能 我知道其中每一个都很好 彼此独立 但我正在尝试一些测试来感受它们 我遇到了这个问题 但无法确定来源 问题 我正在尝试在单个 Node js 程序中插入 1 000 000 条记录 它
  • laravel cron 使用错误

    Laravel 错误 cron 使用 usr bin php home sitevk artisan 计划 运行 1 gt gt dev null 2 gt 1 应用 控制台 内核 use Illuminate Console Schedu
  • Composer 无法下载文件

    我正在尝试在命令行上使用作曲家 php composer phar update php composer phar install php composer phar self update php composer phar selfu
  • 在PHP中,如何在表格中显示数组内容

    如果我在 MySQL 客户端中进行选择 我将得到如下所示的输出 mysql gt select FROM group LIMIT 2 group id group supergroup id group deletable group la
  • PHP-列出一年中一个月中的所有天[重复]

    这个问题在这里已经有答案了 可能的重复 我在 PHP 中有 2 个日期 如何运行 foreach 循环来遍历所有这些日期 https stackoverflow com questions 3207749 i have 2 dates in
  • PHP中的反转数组

    array 7 0 gt array 2 id gt string 1 9 roi gt float 0 1 gt array 2 id gt string 1 1 roi gt float 0 2 gt array 2 id gt str
  • 如何检查 $row['column_name'] 是否返回空 php mysql

    我有一个带有列的表格 id name phone describe 当我从这个表中获取值时 我正在使用 row mysql fetch array query 现在我想检查是否 row describe 返回空值 如何查看php 您可以使用
  • laravel 5.3 新的 Auth::routes()

    最近开始使用laravel 5 3写博客 但是运行后出现一个问题php artisan make auth 当我运行这个时 它会在我的web php 这是其中的代码 Auth routes Route get home HomeContro
  • AFNetworking 上传图片

    我看过一些例子 但我认为我的问题可能出在 PHP 中 我正在尝试使用 AFNetworking 将图像从 iPhone 上传到服务器 这是我的 obj c 代码 IBAction uploadButtonClicked id sender
  • 为什么 PHPUnit 将一些右大括号显示为未被覆盖?

    我正在使用 PHPUnit 3 6 7 PHP CodeCoverage 1 1 1 和 Xdebug 2 1 2 当我让 PHPUnit 将代码覆盖率统计信息写入 clover 样式的 XML 文件时 它偶尔会显示一个右花括号 表示测试未
  • 如何在之前的 Facebook 身份验证后自动安全地让用户登录?

    用户抱怨他们必须过于频繁地登录 如果身份验证完全基于 Facebook OAuth 那么用户如何在下次访问该页面时自动登录 用户流程示例 用户点击 使用 Facebook 登录 用户通过 Facebook 进行身份验证并被重定向回网站 用户
  • 退出 PHP 脚本后终止或停止 MySQL 查询

    我在工作中运行一个统计服务器 由于运行的查询量很大 该服务器有时会变得非常慢 我们的营销团队使用它作为主要统计工具 团队中的某些人有时会在脚本结束之前退出脚本 通过关闭浏览器或选项卡 同时 SQL 查询继续执行 当有人关闭或离开 PHP 脚
  • Python——捕获异常的效率[重复]

    这个问题在这里已经有答案了 可能的重复 Python 常见问题解答 异常有多快 https stackoverflow com questions 8107695 python faq how fast are exceptions 我记得
  • Oracle Blob 在 PHP 页面中作为 img src

    我有一个网站当前使用文件服务器上的图像 这些图像显示在页面上 用户可以根据需要拖放每个图像 这是使用 jQuery 完成的 图像包含在列表中 每张图片都非常标准 img src network path image png height 8
  • 使用 PHP 将 SVG 图像转换为 PNG

    我正在开发一个网络项目 该项目涉及动态生成的美国地图 根据一组数据为不同的州着色 这个 SVG 文件为我提供了一张很好的美国空白地图 并且很容易更改每个州的颜色 困难在于 IE 浏览器不支持 SVG 因此为了让我使用 svg 提供的便捷语法
  • C++ Streambuf 方法可以抛出异常吗?

    我正在尝试找到一种方法来获取读取或写入流的字符数 即使存在错误并且读 写结束时间较短 该方法也是可靠的 我正在做这样的事情 return stream rdbuf gt sputn buffer buffer size 但如果streamb
  • 合并 csv 文件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在 PHP 或 joomla 中将多个 CSV 文件合并为一个 csv 文件 将文件夹中 csv 文件中的所有数据合并到文本文件中 通

随机推荐

  • C# 7.0 独立丢弃混淆

    我想更好地理解几个涉及 C 7 0 丢弃功能的使用的示例 他们都利用所谓的单独丢弃 https learn microsoft com en us dotnet csharp discards a standalone discard 这是
  • CQRS 对于我的域是否正确?

    我正在对一个档案进行建模 它是视频点播系统的一部分 将存档想象成 Windows 资源管理器 其中多个用户可以创建文件夹 上传视频 重组文件夹等 有业务规则 权限 确定是否允许用户执行任务 即重命名文件夹 移动文件夹 查看文件夹等 我已将每
  • 如何减少 Hybris 服务器的启动时间?

    我正在研究一个Hybris项目这是非常耗时的等待 350 550 秒对于单个Hybris服务器启动 即使只是代码中的一点修改 错误输入 是否有可能reduce this time仅运行我修改过的扩展或任何其他方式 那将是一件很棒的事情 在
  • DirectX Release 构建可以通过 VS2010 运行,但不能运行 exe

    我已经通过 Google 访问 Stack Overflow 几年了 但到目前为止还没有询问 回答任何问题 所以就到这里吧 基本上 我有一个在 DirectX 11 中设置绘图模型和地形的 3D 渲染框架 一切正常 通过 Visual St
  • 当前上下文中不存在名称“isPost”(带有 Razor 的 ASP.NET)

    我正在尝试遵循有关 Razor 入门的 Microsoft 文档 https learn microsoft com en us aspnet web pages overview getting started introducing r
  • 如何使用VBA在Excel中保持第一个单元格始终处于活动状态

    如何在打开 Excel 工作表时保持第一个单元格始终处于活动状态 任何人都可以指导我如何做到这一点 这是我的 代码 Private Sub Send Click Dim strURL As String strURL http xxxxxx
  • UIFont - 如何获取系统细字体

    UIFont有方法获取常规字体 systemFontOfSize 或粗体 boldSystemFontOfSize 但是如何通过情节提要获得可用的 瘦系统字体 将 系统精简 传递给UIFont构造函数不起作用 该构造函数仅适用于非系统字体
  • Django 开发将 HttpResponses 记录到开发服务器

    我正在使用 Django 创建一个 API 每个视图都以 JSON 形式响应 我想将每个 HttpResponse JSON 记录到开发服务器输出 到目前为止我已经添加了一个处理程序 console level DEBUG class lo
  • 在 Python 中列出所有 Google Drive 文件和文件夹并保存 ID

    我正在尝试编写一个程序来将文件夹和所有内容 包括子文件夹等 复制到另一个文件夹 我可能过于复杂化了 但我觉得第一步是获取与它们关联的所有文件名和 ID 并将它们保存到两个列表中 一个用于文件 一个用于文件夹 我无法让我的程序递归地遍历所有子
  • 无法验证 AzureAD 本机客户端应用程序

    我已经注册了一个 AzureAD 应用程序 它是公共客户端 本机客户端 我在门户中使用 Azure 生成的标准代码 重要的是 static App clientApp PublicClientApplicationBuilder Creat
  • 在Java中,我们可以将一个类分成多个文件吗

    是否有可能使用Java将一个类划分为多个物理文件 不 整个类必须位于 Java 的单个文件中 如果您正在考虑 C 的 部分类型 功能 那么 Java 中没有类似的功能 如果您没有想到 C 请忽略此
  • 带有 rpi 主站和从站的 Profibus [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我的任务是使用 Rpi 和 Rs 485 转换器构建 profibus 主站和从站网络 一个 Rpi 将成为主设备 另一个将成为从设备
  • 无法加载 RSA 公钥

    我正在尝试读取如下所示的 RSA 公钥 但在第 6 行出现异常 java security spec InvalidKeySpecException java security InvalidKeyException IOException
  • 将浮点数转换为整数

    我试图定义 square Integer gt Integer square round 2 我得到
  • XDebug:Windows + Docker + PHPStorm

    我的操作系统是 Windows 10 我通过 boot2docker 映像运行 Docker 我使用的IDE是PHPStorm 我想做的是使用 XDebug 进行调试 但我没有让它运行 我搜索了网络并尝试了我找到的示例 但没有任何帮助 有相
  • 我收到来自 Retrofit Expected BEGIN_ARRAY but was STRING at line 1 column 1 path $ 的响应错误

    我看了几个答案 我遗漏了一些东西 还有没有办法在 Retrofit 处理之前查看数据 这是代码 extends Activity implements Callback
  • Celery 任务状态取决于 CELERY_TASK_RESULT_EXPIRES

    据我所知 任务状态完全取决于 CELERY TASK RESULT EXPIRES 设置的值 如果我在任务完成执行后检查此间隔内的任务状态 则返回的状态为 AsyncResult task id state 是正确的 如果没有 状态将不会更
  • 在 C - linux 中强制使用原始串行模式

    不知道如何表述标题 但我想做的是用我的 Linux PC 测试我的微控制器 以确保数据正确 经过几个小时的搜索 我发现 stty 命令可以更改通过串行端口管理数据的方式 并且事实证明 默认情况下 如果从端口接收到 xon 或 xoff 字符
  • Spring集成流程的优雅关闭

    我从 spring 集成监控示例中了解到https github com spring projects spring integration samples tree master intermediate monitoring http
  • 有没有一种方法可以捕获异常而无需创建变量?

    在 PHP 中 我有时会使用 try catch 捕获一些异常 try catch Exception e Nothing this is a test that an exception is thrown 通过这种代码 我最终得到了变量