标签: error-handling

什么是在JavaScript中扩展错误的好方法?

我想在我的JS代码中抛出一些东西,我希望它们是instanceof Error,但我也想让它们成为别的东西.

在Python中,通常会有一个子类Exception.

在JS中做什么是合适的?

javascript error-handling exception

340
推荐指数
16
解决办法
11万
查看次数

`throw new Error`和`throw someObject`有什么区别?

我想编写一个常见的错误处理程序,它将捕获在任何代码实例上故意抛出的自定义错误.

当我throw new Error('sample')在下面的代码中做了

try {
    throw new Error({'hehe':'haha'});
    // throw new Error('hehe');
} catch(e) {
    alert(e);
    console.log(e);
}
Run Code Online (Sandbox Code Playgroud)

日志在Firefox中显示,Error: [object Object]我无法解析该对象.

对于第二个throw,日志显示为:Error: hehe

而当我这样做的时候

try {
    throw ({'hehe':'haha'});
} catch(e) {
    alert(e);
    console.log(e);
}
Run Code Online (Sandbox Code Playgroud)

控制台显示为:Object { hehe="haha"}其中我能够访问错误属性.

有什么不同?

是否在代码中看到了差异?像字符串一样只是作为字符串和对象传递给对象,但语法会有所不同吗?

我没有探索过抛出错误对象......我只是抛出了字符串.

还有除上述两种方法之外的其他方法吗?

javascript error-handling exception-handling object throw

336
推荐指数
10
解决办法
21万
查看次数

400 BAD请求HTTP错误代码含义?

我有一个JSON请求,我发布到HTTP URL.

如果这被视为400其中requestedResource场存在,但"Roman"对于这方面的无效值?

[{requestedResource:"Roman"}] 
Run Code Online (Sandbox Code Playgroud)

如果这被视为400其中"blah"场完全不存在吗?

[{blah:"Roman"}]
Run Code Online (Sandbox Code Playgroud)

rest error-handling http http-status-code-400

335
推荐指数
9
解决办法
103万
查看次数

我可以尝试/发出警告吗?

我需要从一些php本机函数中捕获一些警告,然后处理它们.

特别:

array dns_get_record  ( string $hostname  [, int $type= DNS_ANY  [, array &$authns  [, array &$addtl  ]]] )
Run Code Online (Sandbox Code Playgroud)

当DNS查询失败时,它会发出警告.

try/ catch不起作用,因为警告不是例外.

我现在有2个选择:

  1. set_error_handler 看起来有点矫枉过正,因为我必须使用它来过滤页面中的每个警告(这是真的吗?);

  2. 调整错误报告/显示,以便这些警告不会回显到屏幕,然后检查返回值; 如果是false,则没有找到主机名的记录.

这里的最佳做法是什么?

php error-handling try-catch

334
推荐指数
5
解决办法
19万
查看次数


Linux中是否有任何标准的退出状态代码?

如果进程的退出状态为0,则认为该进程已在Linux中正确完成.

我已经看到分段错误经常导致退出状态为11,但我不知道这是否只是我工作的惯例(那些失败的应用程序都是内部的)或标准.

Linux中的进程是否有标准退出代码?

linux error-handling exit-code

300
推荐指数
8
解决办法
28万
查看次数

为什么"除了:传递"一个糟糕的编程习惯?

我经常看到有关如何except: pass阻止使用的其他Stack Overflow问题的评论.为什么这么糟糕?有时我只是不在乎错误是什么,我想继续使用代码.

try:
    something
except:
    pass
Run Code Online (Sandbox Code Playgroud)

为什么使用except: pass块坏?是什么让它变坏?是因为我pass出错了还是我except有错误?

python error-handling exception-handling exception try-catch

300
推荐指数
14
解决办法
14万
查看次数

是否无法使用JSON.stringify对错误进行字符串化?

再现问题

尝试使用Web套接字传递错误消息时遇到问题.我可以复制我面临的问题,JSON.stringify以迎合更广泛的受众:

// node v0.10.15
> var error = new Error('simple error message');
    undefined

> error
    [Error: simple error message]

> Object.getOwnPropertyNames(error);
    [ 'stack', 'arguments', 'type', 'message' ]

> JSON.stringify(error);
    '{}'
Run Code Online (Sandbox Code Playgroud)

问题是我最终得到一个空对象.

我试过的

浏览器

我首先尝试离开node.js并在各种浏览器中运行它.Chrome版本28给了我相同的结果,有趣的是,Firefox至少做了一次尝试,但遗漏了消息:

>>> JSON.stringify(error); // Firebug, Firefox 23
{"fileName":"debug eval code","lineNumber":1,"stack":"@debug eval code:1\n"}
Run Code Online (Sandbox Code Playgroud)

替换功能

然后我查看了Error.prototype.它表明原型包含诸如toStringtoSource之类的方法.知道函数不能被字符串化,我在调用JSON.stringify时包含了一个replacer函数来删除所有函数,但后来意识到它也有一些奇怪的行为:

var error = new Error('simple error message');
JSON.stringify(error, function(key, value) {
    console.log(key === ''); // true (?)
    console.log(value === error); // true …
Run Code Online (Sandbox Code Playgroud)

javascript error-handling json node.js

289
推荐指数
12
解决办法
8万
查看次数

Bash中是否有TRY CATCH命令

我正在编写一个shell脚本,需要检查是否已安装终端应用程序.我想使用TRY/CATCH命令来执行此操作,除非有更简洁的方法.

error-handling bash shell

280
推荐指数
10
解决办法
24万
查看次数

每次使用 pip 3 时如何解决“错误:外部管理环境”?

错误信息:

\n
\n
error: externally-managed-environment\n\n\xc3\x97 This environment is externally managed\n\xe2\x95\xb0\xe2\x94\x80> To install Python packages system-wide, try apt install\n    python3-xyz, where xyz is the package you are trying to\n    install.\n\n    If you wish to install a non-Debian-packaged Python package,\n    create a virtual environment using python3 -m venv path/to/venv.\n    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make\n    sure you have python3-full installed.\n\n    If you wish to install a non-Debian packaged Python application,\n    it may be easiest to use pipx install xyz, which will manage …
Run Code Online (Sandbox Code Playgroud)

python error-handling pip

247
推荐指数
10
解决办法
40万
查看次数