问题标签 [exception-handling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
194600 浏览

java - 如何检查数组元素是否为空以避免Java中的NullPointerException

我有一个部分填充的对象数组,当我遍历它们时,我试图检查所选对象是否null在我用它做其他事情之前。然而,即使是检查它是否null似乎是通过NullPointerException. array.length也将包括所有null元素。您如何检查null数组中的元素?例如,在下面的代码中将为我抛出一个 NPE。

0 投票
8 回答
7975 浏览

c# - 捕获非特定异常(例如 System.Exception)是一种不好的做法吗?为什么?

我目前正在进行代码审查,下面的代码让我跳了起来。我看到此代码存在多个问题。你是否同意我的观点?如果是这样,我该如何向我的同事解释这是错误的(顽固的类型......)?

  • 捕获一个通用异常(Exception ex)
  • 使用“if (ex is something)”而不是另一个 catch 块
  • 我们吃 SoapException、HttpException 和 WebException。但是如果 Web 服务失败了,就没有什么可做的了。

代码:

0 投票
4 回答
236 浏览

delphi - 是否有关于如何在 Delphi 中使用异常的视频/屏幕转换

嗨,有没有关于如何在 Delphi 中使用异常的精彩视频。

0 投票
4 回答
100541 浏览

php - “做某事 OR DIE()”如何在 PHP 中工作?

我正在编写一个 php 应用程序来访问 MySQL 数据库,并且在一个教程中,它说了一些形式

PHP 是如何知道函数失败以便运行 die 部分的?我想我在问它的​​“或”部分是如何工作的。我不认为我以前见过它。

0 投票
1 回答
1127 浏览

exception - 如何在 Haskell 中捕获任意异常?

如何在 Haskell 中捕获异常?

0 投票
2 回答
1357 浏览

c# - 如何阻止异常破坏我的委托链?

我遇到了一个常见的问题。当我有一个事件可能被几个不同的类订阅时,这些类之一抛出的异常将终止回调链;因为我不知道执行回调的先验顺序,这可能会导致某些类的不可预测的状态更改,而不是其他类。

在圣经中(通过 C# 的 CLR,我使用的是 C# 2.0)有一小段关于使用MulticastDelegate.GetInvocationList来解决这个问题,但仅此而已。所以我的问题是:处理这个问题的最佳方法是什么?我MulticastDelegate.GetInvocationList每次有活动都必须使用吗?或者我是否需要将所有可能作为委托链的一部分调用的方法包含在某种回滚机制中?与在 C# 中如此易于使用的简单事件/委托模型相比,为什么所有这些选项都如此复杂?我怎样才能使用简单的方法而不会导致损坏状态?

谢谢!

0 投票
5 回答
2936 浏览

c++ - 如何保证在 Visual Studio 2005 下的 C++ 中捕获 EXCEPTION_STACK_OVERFLOW 结构化异常?

背景

  • 我有一个带有Poof-Crash [ 1 ] 的应用程序。我相当肯定这是由于堆栈爆炸造成的。
  • 该应用程序是多线程的。
  • 我正在用“ Enable C++ Exceptions: Yes With SEH Exceptions (/EHa)”编译。
  • 我写了一个 SE Translator 函数并_set_se_translator()用它调用。
  • 我已经为 和 setupset_terminate()set_unexpected().
  • 要获得 Stack Overflow,我必须在重负载下以发布模式运行几天。在调试器下运行不是一种选择,因为应用程序的执行速度不够快,无法达到查看问题所需的运行时间。
  • 我可以通过在执行其中一个函数时添加无限递归来模拟问题,从而测试EXCEPTION_STACK_OVERFLOW异常的捕获。
  • 我将 WinDBG 设置为故障转储程序,并获得有关所有其他崩溃问题的好信息,但不是这个。故障转储将仅包含一个线程,即“Sleep()”。所有其他线程都已退出。

问题

我尝试过的所有事情都没有导致出现EXCEPTION_STACK_OVERFLOW异常。

有谁知道如何保证在发布模式下运行时有机会遇到这个异常?

定义

  1. Poof-Crash:应用程序因“噗”而崩溃并消失得无影无踪。

(考虑到这个网站的名称,我有点惊讶这个问题还没有出现在这里!)

笔记

  1. 简要发布了一个关于调整堆栈大小以可能更快地强制问题并允许使用调试器捕获它的答案。这是一个聪明的想法,但不幸的是,我不相信它会有所帮助。该问题可能是由导致无限递归的极端情况引起的。缩短堆栈不会很快暴露问题,并且可能会导致有效深度代码中的无关崩溃。好主意,感谢您发布它,即使您确实删除了它。
0 投票
6 回答
2729 浏览

python - Python中函数的异常处理

假设我有一个函数定义:

每当我给出一个论点时,我都会得到一个 TypeError 。

现在,我想将 def 语句放在 try 中。我该怎么做呢?

0 投票
6 回答
179116 浏览

python - 在 Python 中引发异常时如何停止程序?

当 Python 中出现异常时,我需要停止我的程序。我该如何实施?

0 投票
2 回答
250 浏览

asp.net - 清理/重建会消失的异常。如何诊断/预防?

预问题:由于公司修补疏忽,我们的办公室被蠕虫袭击,实验室里的男孩们重修了我的机器。我需要重新安装我的所有开发工具(Visual Studio 2005、SP1 和 Web 应用程序项目安装补丁)。在此事件之前未发生以下问题。

几个月来,我一直在研究一个 ASP.NET Web 应用程序项目。我一直在编辑,调试等没有问题。然后,我添加了一行代码,在 Debug 中运行它并得到了这个错误:

我取消了新代码的注释,构建了项目并再次运行调试,但得到了同样的错误。

新代码:

Me.frm.btnSubmitChanges.Attributes.Add("onclick", "javascript:return validateSubmit();")

我能够解决此问题的唯一方法是清理,然后重建项目。我无法使用断点捕获它发生的位置。

这几天发生了几次。我应该看什么来解决这个问题?

谢谢!