问题标签 [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.

0 投票
2 回答
9963 浏览

java - Java - 如何使用一种实现覆盖自定义检查和未检查异常的 getMessage()?

如何拥有MyExceptionMyRuntimeException使用相同的自定义getMessage()实现?

由于 Java 没有多重继承,我不知道该怎么做。目前我在两个类中都有重复的代码......

重要细节:getMessage()做this.class.getName()之类的东西。所以我确实需要getMessage()使用反射,因为我需要对象的类名进行本地化。

所以要么我需要一个解决我的第一个问题的解决方案,要么需要一个关于如何在静态方法中使用反射的解决方案,然后我可以使用一些两个异常都可以使用的实用程序类?

一种解决方案可能是某个辅助类中的静态方法,然后使用它:

return new Object() { }.getClass().getEnclosureClass().getEnclosureClass();

不是吗?

0 投票
4 回答
10372 浏览

c# - Custom exceptions and base constructor

I've been trying to write my own custom constructor, but getting error about base() constructor. I've also been searching how to solve this error, but found nothing and all the examples round the internet are showing almost the same code as mine.

Whole Exception.cs content:

first overload with base() is working, no errors were thrown. Second and the third overloads are telling me that :

"RegisService.Exceptions does not contain a constructor that takes 1(2) arguments"

One more way I've been trying to solve the error:

this time, VS is telling me that:

"Use of keyword 'base' is not valid in this context"

So, where is the problem? Looks like the base() constructor has some weird overloads or I'm calling it in inappropriate way?

0 投票
4 回答
518 浏览

c# - 澄清:尝试 Catch vs Throw 异常以及为什么调用基类构造函数

按照书中的示例,得到以下稍微修改的代码:

.....................................

我的理解是,当我们在特定条件下抛出特定异常时,相应的 catch 块会处理它。

但是请帮我举一个更好的例子,也许.NET异常的实现会很有帮助。

为什么我们将消息传递给基Exception类?是否仅用于打印目的?

子类调用基类构造函数有一个 OOPS 概念。您能否命名它以及它与自定义异常示例的关系?

0 投票
2 回答
29890 浏览

python - python从if语句和try-except调用自定义异常

因此,我创建了一个自定义异常,我想以 2 种不同的方式调用它(if/else 语句和 try/except 语句)。这是自定义异常:

这是我想要实现自定义异常的方式:

我相信我的问题有两个方面:

1:当块NameError中抛出的标准时try/except(由于;lsdfj),我想传递CustomExceptions一些额外的参数,如'file',就像if/else实现一样;我该怎么做?

2:当引发自定义异常时(从 if/else 语句为假),CustomExceptions 类最终会被调用两次,因为我在 if/else 块中引发它,然后在该except:部分中再次引发它。我不知道如何解决这个问题。

因此,在上述情况下,我想在if-statement不为真时调用 CustomException,并且我想在代码块内抛出标准异常时调用它......但目前,if something:评估为假,然后CustomException将引发两次...

所以我希望在我的代码中单方面使用自定义异常来处理if/else条件和标准 python 异常......

我知道这个解释很复杂,但我不确定如何解释我所追求的......任何帮助将不胜感激!提前致谢!

0 投票
3 回答
872 浏览

php - 只在 try catch 块中抛出异常是不好的编程吗?

我目前正在使用 PHP。我正在为我正在构建的 CMS 开发一个错误系统(为了好玩)。对于我的系统中的致命错误(不是在 php 编译器中),我创建了一个 FatalException 类,它扩展了内置的 Exception 类。由于这些类型的错误无论如何都会使系统停止运行,因此我在 __construct 中退出了。

因此,在我的代码中,我将检查与数据库的连接之类的内容,如果不能,我将抛出 FatalException(“无法连接到数据库:$database_error_message”)。它不会在 try/catch 块中。

例如,当我运行代码并且无法连接到数据库时,我在屏幕上看到的只是一个大红色字母的句子。所以它工作得很好,但这是不好的做法/编码吗?

编辑:

事实上,它并没有以这种方式开始。我最初是在记录错误,然后在捕获区域中退出,但后来我想,如果所有致命错误无论如何都会退出,那么只需放入 in 构造函数。然后我注意到它实际上并没有到达它正在退出的捕获区域。因此,将语句放在 try/catch 块中是一个有争议的问题。这导致了这个问题。

0 投票
4 回答
69375 浏览

ruby - Ruby 自定义错误类:消息属性的继承

我似乎找不到太多关于自定义异常类的信息。

我所知道的

您可以声明您的自定义错误类并让它继承自StandardError,因此它可以是rescued:

这允许您使用以下方法提升它:

稍后,在救援时收到该消息

我不知道的

我想给我的异常一些自定义字段,但我想message从父类继承属性。我发现阅读这个主题不是@message异常类的实例变量,所以我担心我的继承不起作用。

谁能给我更多的细节?我将如何实现具有object属性的自定义错误类?以下是否正确:

接着:

要得到:

它会起作用吗,如果起作用,这是正确的做事方式吗?

0 投票
4 回答
69401 浏览

c++ - 如何创建异常?

所以我有一个即将到来的任务来处理异常并在我当前的通讯簿程序中使用它们,大部分作业都围绕着它。我决定尝试处理异常和整个 try catch 的事情,并使用类设计,这是我在几周内最终必须为我的作业做的事情。我有工作代码可以很好地检查异常,但我想知道的是,是否有办法标准化我的错误消息函数(即我的 what() 调用):

这是我的代码:

我想做的就是让我的 what() 函数可以根据调用的错误类型返回一个值。因此,例如,如果我调用一个看起来是顶部数字 (a) 的错误,以查看它是否为零,如果是,它会将消息设置为“你不能拥有一个零分子”,但仍然在 what() 函数中。这是一个例子:

这显然行不通,但是有没有办法做到这一点,所以我不会为每个错误消息编写不同的函数?

0 投票
1 回答
382 浏览

c# - C#中自定义异常的Interview_Question

我在面试中遇到了一个关于自定义例外的问题。如下所示,有四个捕获每个自定义异常的多个捕获。面试官让我为 catch 块编写一个伪代码,我如何处理所有四个自定义异常。

在此处输入图像描述

我回答为

它是正确的还是错误的?

0 投票
6 回答
888 浏览

java - 如何获取引发自定义异常的类的名称

我正在为大学准备一个项目,我需要编写一个自定义异常,当它们未正确初始化时,同一包中的几个类将抛出该异常。问题是我必须让用户知道哪些类没有正确初始化(并抛出异常)......所以我在考虑这样的事情:

(顺便说一句,它可以通过反射来实现吗?)

0 投票
1 回答
195 浏览

.net - .NET 中没有新抛出的自定义异常

我不确定这是否可能。(我认为应该)。是否可以在不抛出新异常的情况下捕获自定义异常,如下所示?

我想要的如下:

我已经尝试了上述方法,但它没有直接捕获我的 CustomException。我必须做“ throw new CustomException()”,这并不理想。我究竟做错了什么?

我的自定义异常类如下所示:

谢谢,