大家好,欢迎来到IT知识分享网。
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