JAVA sleep函数如何用_java的sleep函数设计问题

JAVA sleep函数如何用_java的sleep函数设计问题java的sleep函数的典型用法是:try{Thread.sleep(1000);}catch(InterruptedExceptione){e.printStackTrace();}不过我觉得这个API设计的有问题,不应该有异常抛出。既然是sleep就不应该抛出InterruptedException,如果是系统异常应该是进程直接异常退出,而不应该把异常丢给sleep,让在API层抛…

大家好,欢迎来到IT知识分享网。JAVA sleep函数如何用_java的sleep函数设计问题

java的sleep函数的典型用法是:

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

不过我觉得这个API设计的有问题,不应该有异常抛出。既然是sleep就不应该抛出InterruptedException,如果是系统异常应该是进程直接异常退出,而不应该把异常丢给sleep,让在API层抛出异常。

试想sleep抓住一个InterruptedException异常,能干什么呢,能有什么补救措施呢?是继续往下执行呢,还是Process.Exit()呢?我们一般意义上如果sleep抓到一个InterruptedException 异常,表示程序进入了不可预测状态,此时能做的最安全的办法就是退出程序,这和sleep内部系统级别杀掉自己是一样的结果,所以与其在这儿抛出异常,不如在一开始出现异常的时候就由系统杀掉自己更直接。

所以我觉得sleep函数API的设计应该就是:

Thread.sleep(long millis)

没有任何异常抛出。

函数返回的唯一条件是设定的时间值到期,否则就是程序崩溃,例如被kill掉。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21728.html

(0)
上一篇 2024-01-16 08:00
下一篇 2024-01-16 10:45

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信