Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当重写方法不引发任何异常时,异常处理

当重写方法不引发任何异常时,异常处理
EN

Stack Overflow用户
提问于 2011-10-06 06:26:53
回答 4查看 5.4K关注 0票数 2

短格式:当被重写的方法不抛出异常时,如何抛出异常(或者进行良好、干净的异常处理;或者至少是肮脏地强制执行停止)?

上下文:我们拥有一种可以使用“宏”实现自动化的专有软件的许可证。用户定义的宏必须具有以下形式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MyMacro extends SoftwareMacro {
    public void execute() {
        // user code goes here
    }
}

也就是说,一个扩展SoftwareMacro的类,它有一个名为execute的方法,它覆盖基类的execute。这个覆盖的execute的内容.好吧..。当宏被“播放”时执行。

但是重写的execute方法显然不会抛出任何异常。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
execute() in com.mycompany.mypackage.MyMacro cannot implement execute() in 
somesoftware.base.SoftwareMacro
overridden method does not throw java.lang.Exception

也许这是幼稚的,但在开发过程中,我通常喜欢将适当的异常类型泡到顶部,强制执行停止,这样我就可以看到它们并继续调试。这显然不是一种选择。

我应该转而使用RuntimeException吗?(因为不需要指定RuntimeException ),这感觉有点草率,而且“违背”了基类方法contracy。

不,我不能更改overriden execute方法的源代码。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-10-06 06:31:02

看起来,这样做的目的是每个SoftwareMacro都执行自己的错误处理。如果需要的话,在整个try方法周围使用一个大的execute(),但是不要让任何异常离开。在execute方法中执行您需要做的任何清理工作,如果用户提供了这样做的方法,则可能会为用户打印错误消息。

您应该检查它们提供的所有APIs -也许您应该使用一个错误报告工具。

票数 4
EN

Stack Overflow用户

发布于 2011-10-06 06:33:16

这取决于“宏播放器”在遇到运行时异常时所做的事情,以及您想要发生的事情。

如果它根本不处理它,但您并不关心,那么抛出一个RuntimeException。

如果处理得当,则抛出一个RuntimeException。

如果它没有正确地处理它们,并且您不希望它不幸地失败,那么捕获在您的执行方法中可能发生的异常,并按您认为最好的方式处理它们:显示一个错误对话框,输出一个错误消息,在日志中记录一些错误.

票数 4
EN

Stack Overflow用户

发布于 2011-10-06 06:34:10

“应该”意味着有一个正确的答案,这是我没有做的,不符合你的需要。

如果系统能够容忍运行时异常,并且满足您的需要,那么为什么不呢?

不是说你有选择,因为你不能抛出一个检查异常。

(检查异常对我来说似乎是一个失败的实验,尽管我理解动机。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7675776

复制
相关文章
jupyter中运行pyspark
Python for Spark显然比Scala慢。然而,易于学习,并且受益于我最喜爱的库。在我看来,Python是大数据/机器学习领域中原型设计的完美语言。
Tim在路上
2020/08/04
2.4K0
IQKeyboardManager每次运行都会断点到Bug ID:#550
在Xcode9一打断点就会在IQKeyboardManager断点在//Loading IQToolbar, IQTitleBarButtonItem, IQBarButtonItem to fix
傅_hc
2018/07/04
5000
Java中的lambda每次执行都会创建一个新对象吗
之前写过一篇文章 Java中的Lambda是如何实现的,该篇文章中讲到,在lambda表达式执行时,jvm会先为该lambda生成一个java类,然后再创建一个该类对应的对象,最后执行该对象对应的方法,以此来执行我们写的lambda方法体。
KINGYT
2020/01/13
6.1K6
返回执行结果的任务队列:ExecutorCompletionService
有时候我们需要展示一些内容,如果等所有内容都加载完毕再展示这样反而会降低用户体验; 因为如果消耗时间长那么用户需要瞪着空白的页面,反而会失去兴趣; 所以我们希望加载一点资源显示一点,对于那么超过我们容忍范围还未加载完毕的资源我们应该 不再去加载,放弃本次加载或者显示一些默认结果 模拟: final Random r = new Random(); // 创建一个固定大小的线程池 ExecutorService es = Executors.newFixedThreadPool(
用户1215919
2018/02/27
1.3K0
try{}catch{}finally{}运行后的执行结果
1.以下执行结果? (1).代码 public class Demo { public static void main(String[] args) { System.out.println(getValue()); } public static int getValue(){ Scanner sc = new Scanner(System.in); System.out.println("输入一个数"); int
2020/10/23
8060
如何在应用程序中调用CMD并返回运行结果
要求做一个图形界面的应用程序,输入命令行的命令,在后台调用CMD程序执行该命令但不显示DOS命令行窗口,而且能实时显示运行的结果。哪位知道怎么处理?谢啦
用户3519280
2023/07/06
2830
Future,带返回执行结果的线程使用方式
FutureTask是Future的一种实现方式. private final int count; public Counter(int count) { this.count = count; } public void get() throws InterruptedException { // 假设执行一些耗时的操作 Thread.sleep(3000); System.out.println("counter:" + count); } long start = Sys
用户1215919
2018/02/27
1.1K0
在Java中为什么不同的返回类型不算方法重载?
方法重载是指在同一个类中,定义了多个同名方法,但每个方法的参数类型或者是参数个数不同就是方法重载。 比如以下 4 个 method 方法就可以称之为方法重载,如下代码所示:
磊哥
2022/01/20
3.4K0
在Java中为什么不同的返回类型不算方法重载?
「Python」函数返回值、嵌套调用、执行结果
在程序开发中,有时候会希望一个函数执行结束后,告诉调用者一个结果,一遍调用者针对具体的结果做后续的处理。
python自学网
2022/05/16
2.2K0
「Python」函数返回值、嵌套调用、执行结果
java中==、equals的不同AND在js中==、===的不同
       1.==操作符:首先,对于非基本数据类型的对象比较,相同内存中存储的变量的值是否相等,注意是相同内存地址的才可,并且数值相同(当然地址相同,值也一定相同)才会返回true.     但是,对于基本数据类型的比较(比如:int flot double等),值相同,"=="比较便会返回true.(这是编译的规则,当进行基本数据类型的比较时,会编译生成if_icmpne指令不会进行比较地址。而进行对象比较时,会生成if_icmpne指令,会比较地址。生成的指令都是不同的)。
洋仔聊编程
2019/01/15
4K0
GWAS分析中协变量的区分(性别?PCA?不同品种?)
plink进行GWAS分析时,协变量都要是数字协变量,因子协变量需要转化为dummy变量(哑变量)然后与数字协变量合并,通过--covar进行合并。
邓飞
2022/12/13
2K0
GWAS分析中协变量的区分(性别?PCA?不同品种?)
uniapp如何封装全局方法 并返回执行结果
在uniapp中你可以这样实现,你可以使用Promise对象来实现当全局公共方法执行完后执行调用者的逻辑。以下是一个简单的示例代码:
兔云小新LM
2023/05/25
3.3K0
uniapp如何封装全局方法 并返回执行结果
在python中运行MATLAB代码从而实现批量运算结果
在安装好python和matlab的电脑上,如果需要做一些流程化的内容,matlab这个方面不擅长,此时可以借助python来开发,
用户9925864
2023/09/05
5790
在python中运行MATLAB代码从而实现批量运算结果
C#对称加密(AES加密)每次生成的密文结果不同思路代码分享
思路:使用随机向量,把随机向量放入密文中,每次解密时从密文中截取前16位,其实就是我们之前加密的随机向量。 代码 public static string Encrypt(string plainText, string AESKey) { RijndaelManaged rijndaelCipher = new RijndaelManaged(); byte[] inputByteArray = Encoding.UTF8.GetBytes(plainText);//得到需要加密的字节数组
磊哥
2018/04/26
1.6K0
java 查看进程状态_java执行shell命令并返回结果
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172503.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
8760
java 查看进程状态_java执行shell命令并返回结果
pyspark进行词频统计并返回topN
Part I:词频统计并返回topN 统计的文本数据: what do you do how do you do how do you do how are you from operator import add from pyspark import SparkContext def sort_t(): sc = SparkContext(appName="testWC") data = sc.parallelize(["what do you do", "how do you d
云海谷天
2022/08/09
6070
pyspark进行词频统计并返回topN
【Python】PySpark 数据处理 ② ( 安装 PySpark | PySpark 数据处理步骤 | 构建 PySpark 执行环境入口对象 )
命令 , 安装 PySpark , 安装过程中 , 需要下载 310 M 的安装包 , 耐心等待 ;
韩曙亮
2023/10/11
4930
【Python】PySpark 数据处理 ② ( 安装 PySpark | PySpark 数据处理步骤 | 构建 PySpark 执行环境入口对象 )
【Android 返回堆栈管理】打印 Android 中当前运行的 Activity 任务栈信息 | Activity 任务栈信息分析 | Activity 在相同 Stack 中的不同 Task
命令行输出结果 : 打开 CSDN 客户端 , 然后任意点击一篇博客进入 , 输入内容如下 ;
韩曙亮
2023/03/29
6K0
【Android 返回堆栈管理】打印 Android 中当前运行的 Activity 任务栈信息 | Activity 任务栈信息分析 | Activity 在相同 Stack 中的不同 Task
mybatis返回结果处理
当查询的记录条数是多条的时候,必须使用集合接收。如果使用单个实体类接收会出现异常。如果返回的是一条记录可以用集合接收
一个风轻云淡
2023/10/15
2310
mybatis返回结果处理
Python 技术篇-通过管道命令获取cmd执行的结果,获取os.system()、subprocess.Popen()执行命令返回的结果
正常的 os.system() 执行完后只会返回个执行状态值,返回的 0 表示执行成功,1 表示执行失败。 如果想要获取到执行后的结果集,就需要用到管道命令 os.popen(),然后用 read() 方法可以读到返回的结果。subprocess.Popen() 命令也可以获取返回的结果。
小蓝枣
2021/12/01
8.4K1
Python 技术篇-通过管道命令获取cmd执行的结果,获取os.system()、subprocess.Popen()执行命令返回的结果

相似问题

查询每次运行时都会返回不同的结果。

46

每次我运行的时候,Pyspark dataframe都返回不同的结果。

15

每次运行boost::thread都会产生不同的结果

10

每次运行RandomForestRegressor都会得到不同的结果

11

每次运行代码我都会得到不同的结果

35
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文