问题标签 [die]

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 投票
15 回答
293404 浏览

php - PHP中的die()和exit()有什么区别?

PHP中的函数die()和函数有什么区别?exit()

我认为两者都具有相同的功能,但我怀疑两者之间是否存在不同......它是什么?

0 投票
3 回答
13053 浏览

jquery - jQuery:绑定和取消绑定实时点击事件

所以我的问题有两个限制:

  1. 我必须在点击事件中使用外部函数调用,并且
  2. 我必须使用实时点击事件,而不是绑定典型的点击事件。

所以我的问题是我试图在点击事件发生后解除绑定,然后在点击事件代码完成后重新绑定它。我这样做是为了防止在代码当前正在处理时重复点击(我有淡入/淡出动画,这将允许按钮快速点击两次或三次,从而执行我的代码 2 或 3 次,这是不希望的) . 我正在使用的代码如下:

我疯了,或者这应该没有问题吗?现在,我可以单击一次,但之后不能再单击。很明显 die() 正在工作,但由于某种原因它没有被重新绑定到该函数。我已经验证它确实到达了 handleClick() 中的代码来重新绑定实时点击。

有任何想法吗?任何帮助将不胜感激。谢谢。

0 投票
1 回答
1598 浏览

jquery - jQuery die() 杀死所有元素而不是只指定一个

我有一个奇怪的问题,我怀疑这可能只是正常行为,但我需要人们确认。我正在<li>使用以下代码将实时点击事件连接到许多元素:

请注意,我在这里使用了一个整体选择器来将相同的实时点击事件连接到<li>$list 中的所有元素,这只是一个无序列表。我一次调用此代码$(document).ready()。rightItemSingleClickEvent() 实际上杀死了方法顶部的实时点击事件。这是因为有与点击相关的动画,我在动画发生时将其杀死,这样就不会发生重复点击。杀死点击的代码如下:

动画完成后,我重新连接点击事件:

我应该指出,所有这些代码似乎都运行良好。我可以选择一个列表项来单击,并且每次都成功杀死并重新连接(从而防止在动画过程中重复单击)。但是,我的问题是,当我认为我只杀死了单个列表项 ( <li>) 时,它似乎正在杀死所有列表项,而不仅仅是那个。因此,一旦我单击一个列表项,虽然它的功能继续工作(我仍然可以单击),但所有其他列表项都无法再被单击。我想知道这是否与我通过一个涵盖所有<li>'s 的一揽子声明连接实时点击事件这一事实有关。

因此,也许如果我将实时事件单独连接到每个事件<li>,而不是仅使用单个选择器完成所有事件,它可能会起作用?我只是不确定为什么在单个上调用 die()<li>也会杀死它的所有兄弟姐妹。

任何见解将不胜感激。谢谢。

澄清:我被要求为 rightItemSingleClickEvent 发布更多代码。该函数本质上处理用户单击列表项时发生的情况。我通过添加和删除 css 类来模拟单击和取消单击。还有另一个文本框在单击时显示并在取消单击时隐藏。这是我重新连接实时点击事件之前必须完成的动画。我还应该指出,我正在使用辅助函数来终止和连接点击事件,handleNotes() 是一个在用户取消点击时存储文本框文本的函数,并做了一些我认为不会的其他事情与这个问题有关。然而更令人困惑的是,我的代码仍然发布在下面:

更新:好吧,我更改了代码,将单击事件单独连接到每个列表项,因为它被写入 HTML,并且仍然存在相同的行为。老实说,我只是不确定发生了什么。但即使没有一揽子实时连接语句,杀死一个列表项上的点击事件也会杀死所有列表项。在我的所有代码中只有一个地方会杀死实时点击事件,就是我在上面发布的那个。所以我完全不知所措。

更新2:因为我无法解决这个问题,我修改了我的代码来检查“:animated”状态,并放弃了杀死和重新连接实时点击事件的想法。但是,我仍然很想知道为什么一个列表项上的 kill() 会杀死它们,即使我已经分别为每个列表项分配了实时点击事件。

0 投票
5 回答
630 浏览

php - PHP 和 HTML 集成

我有一个 php 文件,其中包含一个 HTML 表单,然后是 PHP 逻辑,然后是 HTML 页脚......按此顺序。

我正在尝试将表单中的值获取到页面底部(但在页脚之前)中的一些 php 验证逻辑中<?php VALIDATION LOGIC HERE ?>.

问题是当验证发现错误时,php 逻辑将 die(),因此,我的 HTML 页脚将不会被执行。

尽管我的 php die(); 有办法让我的 HTML 页脚执行吗?...或者是否有更好的整体方式来集成我的 HTML 和 PHP?谢谢!任何帮助将非常感激。


编辑:我实际上在我即将连接到数据库的代码中几乎所有地方都有 die() 。如果用户凭据正确,他们连接..如果凭据错误,那么它将死()..

这是好的做法和使用 die() 吗?看来我的问题的解决方案是使用 return() INSTEAD OF die()...为了继续处理 HTML 页脚。

另外,我有mysql_connect() 或die() 等情况。在处理 HTML 之前执行 die() 时,我如何继续处理剩余的 HTML 页面?..我不认为 mysql_connect() 或返回;是好的做法吗?

再次非常感谢!反馈非常有帮助!

0 投票
1 回答
79 浏览

winapi - 帮助解决始终可重复的 mod_perl2 / $SIG{__DIE__} 错误

这是 Apache 2.2 上的 mod_perl2,win32 上的 ActiveState Perl 5.10。

我覆盖$SIG{__DIE__}并打开 DBI 的 RaiseError 标志,文档中的 AFAICT 应该在数据库调用失败时调用我的覆盖。似乎几乎总是,除了在一种情况下,我不明白为什么。

我的脚本有一个our $page变量,并且是 mod_perl2,我可以从覆盖中得到这个,如下所示:

这工作正常。现在,在其中$page,我有一个“允许”错误值的数组引用,当它们从数据库返回时,我想做一些不同的事情。当数据库抛出这些错误之一时,我想将其转换为用户友好的消息,$r->print即 JSON 格式,并停止执行(行为 A)。出于某种原因,它反而将控制权返回给脚本(行为 B)。

这是我的脚本的主要部分:

如果我注释掉第一行,我会得到一个正常的错误(处理意外的事情)(行为 C),这是我所期望的,因为我没有将发生的错误添加到允许的错误列表中。真正奇怪的是,如果我剪切第一行并将其粘贴到我的$SIG{__DIE__}覆盖中,它会起作用:JSON 响应被覆盖、打印,并且在{test}分配之前执行停止(行为 A)。更奇怪的是,我可以设置{allowed}为任何一组数字,只要它特别包含“22007”,我就会得到行为 B。如果没有,我会得到行为 C。更奇怪的是,我实际上可以填充我的覆盖有任何东西(警告,呼吁CORE::die等——只要它编译),我仍然得到行为 B——即使覆盖不再包含任何使其成为可能的代码!此外,我没有得到对warnand的调用的任何预期结果CORE::die,只是在日志中保持沉默,所以我什至无法尝试通过我的覆盖手动跟踪执行路径。

我在每个脚本保存之间重新启动了 Apache2.2。我什至将覆盖移到与脚本本身相同的脚本文件中,移出它通常所在的模块,并注释掉覆盖通常所在的整个模块文件,然后重新启动。

如果我取出第一行,或者从中取出“22007”,我可以warn手动die调试我喜欢的所有内容,并且一切都按预期工作。尽管服务器重置,它从不输出任何不同的“22007”是什么?除了翻译图,整个项目的其他任何地方都没有对“22007”的引用,我可以将它从该文件中完全删除并重新启动,结果没有什么不同。它的行为就好像它已经缓存了我当天早些时候的覆盖并且永远不会忘记。这也不是浏览器缓存问题,因为我可以添加随机查询字符串,结果没有什么不同。

这是我有过的最奇怪和最令人沮丧的 mod_perl2 体验,而且我已经没有想法了。有人有任何提示吗?我唯一能想到的是这是一个缓存问题,但我已经无数次重启了服务。

由于这是一天的结束,我想我会尝试完全重新启动服务器计算机,但它仍然没有改变任何东西。{state}我什至在重新启动服务器之前更改了分配给它的唯一行:

然而,之后的输出为“22007”,只有在我完好无损{test}的情况下才应该是这样。= $errno

即使它是进行缓存的反向代理,这种情况对我来说也没有意义,因为请求可能不同。在完全重新启动服务器后,它如何仍然分配一个不再存在于代码中的值,即$SIG{__DIE__},当它不再存在于任何文件中时,它如何在完全重新启动后使用我的旧覆盖?

更新: 我还尝试将允许的错误更改为 '42601' 并将 db 调用更改为'select',这会产生该错误代码,但没有将其添加到翻译映射中。它仍然给我行为 B,设置{state}为“42601”,所以它不是特定于“22007”。放入的任何错误代码{allowed},如果确实发生了该错误,则它正在运行旧版本的覆盖。导致不存在的错误,{allowed}它运行当前版本。但是,在覆盖之前,它如何知道当前错误是否在 中{allowed},或者这是否意味着什么?{allowed}(因为覆盖是当前错误的唯一位置。)

0 投票
5 回答
1832 浏览

php - PHP:死/退出中的多个命令

当它给出错误时,我希望他做两件事。

  1. 回声 nl2br($qVraagOp);
  2. mysql_error();

所以我认为:

我可以编写一个函数来完成这两件事,然后调用它,但这有点多余。还有其他方法吗?

马蒂

0 投票
1 回答
6337 浏览

perl - 如何在 perl 中测试异常类型?

如何检查导致脚本或eval块终止的异常类型?我需要知道错误的类型以及异常发生的位置。

0 投票
5 回答
13996 浏览

perl - Perl:在不死的情况下捕获错误

我正在玩错误处理并遇到了一个小问题。我使用 DBI 模块连接数据库。

我使用调用错误的子例程来进行自己的错误处理。

我可以抓住自己的模具并很好地处理它们,但是当我的数据库连接失败时,DBI 模块显然会打印出它自己的模具:

DBI connect(...) failed: ORA-12154: TNS:could not resolve the connect identifier specified (DBD ERROR: OCIServerAttach) at ...

我要怎么抓到这个?

我尝试$SIG{__DIE__}像这样使用:

这是我的主文件的底部,在这个文件中,我还调用了我自己的模块中可用的连接子例程。我还尝试将这段代码放在模块的底部,但它仍然打印错误而没有

错误:

在它面前。

0 投票
4 回答
1716 浏览

php - 如何在 php 中执行 perl 脚本并捕获错误消息?

我正在尝试像这样执行 Perl 脚本:

当 Perl 脚本失败时,它会使用 'die' 退出并打印出错误消息。手动执行时我可以看到该错误消息,但我无法通过 PHP 捕获它。

我尝试了以下但没有成功:

有任何想法吗?

0 投票
4 回答
193 浏览

perl - Perl 编译器能告诉我我的代码中是否有未经检查的异常吗?

Perl 中有没有办法声明一个方法可以抛出错误(或死亡)?

编辑:我最感兴趣的是让编译器或 IDE 告诉我我的代码中某处有未经检查的异常的方法。

我一直很喜欢在 Java 中,方法可以处理异常和/或抛出异常。方法签名允许放置“抛出 MyException”,因此一个好的 IDE/编译器会知道,如果您在代码中的某处使用所述方法,则必须检查异常或声明您的函数以进一步“抛出”异常.

我在 Perl 中找不到类似的东西。我的一位同事写了一个方法,该方法在输入不正确时“死亡”,但我忘记了 eval-if($@) 它......当然,错误只是在用户运行应用程序时才发现的。

(当然我怀疑是否有任何现有的 IDE 可以为 Perl 找到这些东西,但至少 perl -cw 应该能够,不是吗?)