当前位置: 首页 > 知识库问答 >
问题:

抛出字符串而不是错误

华君浩
2023-03-14

既然我们可以在Javascript中使用throw关键字抛出任何东西,那么我们就不能直接抛出一个错误消息字符串吗?

有人知道这里面有什么陷阱吗?

让我对此添加一些背景:在JavaScript世界中,人们通常依赖参数检查而不是使用try-catch机制,因此只使用throw抛出致命错误是有意义的。不过,为了能够捕捉一些系统错误,我必须为我自己的错误使用一个不同的类,而不是创建错误的子类,我认为我应该只使用String。

共有1个答案

邵城
2023-03-14

当它是的时候 <罢工> 好的 可以抛出任何值,通常认为抛出error实例或其子类以外的任何内容都是糟糕的形式。这有几个原因:

  1. 捕获代码可能希望引发的对象具有出现在错误上的常见消息StackTrace名称属性。
  2. 缺少stacktrace会使调试成为问题,尤其是在未捕获异常/未处理拒绝的情况下。例如。调试“未捕获[Object Object]”错误可能特别痛苦。
 类似资料:
  • 我在服务层的spring-boot应用程序中使用了Hystrix(Camden.sr7版本),而没有回退方法。Service的方法之一如下所示: 对于这样的响应,不清楚实际上是从哪个方法抛出异常的。如果我将版本更改为brixton.sr5(以前的版本),它将返回清晰的响应: 因此Hystrix的新版本(实际上是spring-cloud-dependencies的新版本)不会抛出HystrixRun

  • 对不起,新手:/。所以当我在“输入你的年龄”中键入一封信时,我有这个问题 输入您的年龄:q 线程“main”java.util.InputMismatchException中出现异常 在java.util.scanner.throwfor(Scanner.java:909) 我想如果我打了任何一个字母,它显示“无效输入”。有人能帮我吗?[对不起,糟糕的英语]

  • 问题内容: 我有这段代码: 它将引发不匹配的组错误。但是,如果不匹配,我想在那里添加空字符串,而不是抛出错误。我怎样才能做到这一点? 注意:我的完整代码比此示例复杂得多。但是,如果您找到更好的解决方案,如何遍历比赛并在其中添加数字,则可以共享。我的完整代码: 问题答案: 在Python 3.5之前的版本中,对Python中失败的捕获组的反向引用未使用空字符串填充。这是在bugs.python.or

  • 我调用方法从一个工人线程在下面的代码,但Android不抛出这应该说java.lang.IllegalStateExc0019:调用视图方法在另一个线程比UI线程”,因为我正在修改UI从外部的UI线程,这在Android中是禁止的。 以下是我的工作线程作为内部类的可运行状态: 注意:host OnHoldDialog是我活动的成员。 而不是抛出,android只是不根据消息更新UI。 这是虫子吗?

  • 问题内容: 我正在尝试使此bcp工具以特定方式工作。-c开关应该使用chars导出,但是由于某些原因,Notepad ++中显示了一个奇怪的char,就像它是UNICODE还是其他格式一样。 我想获取该char(在数据库中为空字符串)作为空字符串导出到文本文件中。你是怎样做的? 问题答案: 好吧,在网上浏览后,这就是我发现的东西。考虑将其放在SO中,以便更多的人可以使用它。 http://www.

  • 以下endpoint以字符串形式返回用户名。 我如何构造它以返回一个json对象,该对象包含一个键,该键的值为该字符串(例如,{“user”:“joeuser”})?