问题标签 [custom-exceptions]
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.
c# - 使自定义异常自动抛出
我创建了一个custom-exception
我想在用户输入男性或女性性别时抛出的。我做了这个使用
现在,当我想exception
在我的主应用程序中抛出异常时,我必须创建一个异常对象,然后在抛出异常之前检查该值。
就像是
我的问题是;我怎样才能创建exception
这样一种方式,当用户输入无效数据时它会自动抛出,而不必像数据类型一样检查数据是否FormatException
无效int
。
java - 为什么我创建的自定义异常会导致非静态变量错误?
有人可以解释一下这里发生了什么吗?为什么“不能从静态上下文引用非静态变量”。出现在这段代码中?我尝试将 parseBinary 更改为非静态。我尝试将 BinaryFormatException 类更改为静态...(不允许)。我对这个错误的理解很薄弱。我知道我通常可以交换一些静态和公开的词,并让它正常工作。没有这样的运气。这是一个家庭作业问题……但这项工作并不围绕错误展开。它与创建错误形成二进制字符串时抛出的自定义异常类有关。因此,虽然我的问题会帮助我回答问题,但它不会给我答案。
c# - 继承 System.Exception 之外的内置异常类
Exception
如果有意义的话,继承系统异常是否是一种好习惯?例如System.InvalidOperationException
,如果我的自定义异常是特定类型的“无效操作”,继承是否明智?
我问的原因是我有许多类都抛出InvalidOperationException
相同的信息。我正在考虑用可以定义自己的默认消息的自定义异常替换这些。如果要继承,InvalidOperationException
我就不必重构catch
处理程序。
c# - 如何捕获自定义异常
我在“主要”方法中有以下代码:
MyException 类如下:
该程序会中断,b /= a;
而我希望它会执行catch
命令。如果我替换MyException
为Exception
,则会捕获异常并且程序不会中断。
如何捕获自定义异常?
java - 将自定义异常序列化为 JSON,并非所有字段都被序列化
我正在尝试使用 Jackson 库中的 writeValueAsString() 方法在 Java 中序列化自定义异常。我打算通过 HTTP 将它发送到另一台机器。这是部分工作,因为序列化后并非所有字段都包含在 JSON 中。顶级异常 Throwable 实现了 Serializable 接口,并且还有一些构造函数来添加有关要序列化的内容的信息。我想真相就在这里。请帮助提供一些建议。这是我的自定义异常代码:
我使用的代码中的某处:
在其他地方我有:
结果 JSON 对象为:
在这里,我还希望看到我的类型和严重性字段。
java - 为什么不需要捕获 IllegalArgumentException?
我想知道为什么IllegalArgumentException
类不需要被捕获或声明,而其他异常必须(例如java.net.MalformedURLException
)。
我知道Error
s 不必声明,因为它们不打算被捕获。
我想声明一个也不需要被捕获的新异常。
android - 抛出异常并获取 e null
我抛出了一些异常消息,例如:
在这里我的 else 部分执行。我的异常类是:
在这里我发现了这个异常:
但在这里抓住的TripLoggerCustomException e
是null
。为什么?谁能帮助我?
javascript - 定义自定义 JavaScript 异常的更短方法?
我正在定义自定义 JavaScript 异常,如下面的代码。这合适吗?没有更短的方法吗?
编辑:最终,根据 Oriol 的建议,我制作了一个生成异常的函数,如下所示:
java - 抛出自定义异常,如果 for 循环
我想要做的是返回我正在寻找的字符串的索引,如果它在数组中,否则抛出异常。
但是 Eclipse 说我必须返回一个 int。
那么我应该将返回类型更改为 void 还是有其他选项?
StringNotFoundException 是我编造的一个自定义异常。
python - Python:打印自定义异常时超出最大递归深度
下面的代码抛出RuntimeError: maximum recursion depth exceeded while getting the str of an object
. 我可以用两种不同的方式解决无限递归,但我不明白为什么每个修复都有效,因此不知道使用哪个,或者是否正确。
如果我删除super
,代码运行但不打印任何内容。这没有任何意义,因为根据这篇文章,Python 中的 __str__ 和 __repr__ 之间的区别,省略__str__
会调用__repr__
,但这里似乎没有发生。
相反,如果我保持对super
和 add的调用__str__ = __repr__
,那么我会得到预期的输出并且没有递归。
有人可以解释为什么存在无限递归,为什么每次更改都会解决无限递归,以及为什么一个修复可能优于另一个修复?