2

trycatchfinally(try catch finally含义)

今天想和大家沟通下,对java中检查异常的使用,大家怎么看的。

反正我是很烦这个检查异常,烦它的原因在于,它一定要强制你去处理这个异常。

检查异常,从含义上来说,就是说出现异常的原因不是代码的问题,而是环境的问题,比如文件找不到,比如数据库连接有问题,这种异常,你是可以在catch中捕获并且处理的。

但是问题是,我在catch中我要怎么处理呢?文件找不到,难道说我会给它在创建个文件?数据库连接有问题,难道说我会在catch中换个连接?在大多数情况下,这种异常真的没法在catch中处理,我在遇到这种情况时,都是直接在catch中直接抛出一个RumtimeException,这种处理效果其实和没有catch的效果是一样的,但是却给代码增加了复杂度,但是没办法啊,谁让人家强制让你处理呢?

或许有人会说了,你不catch也可以啊,在方法头上把异常throws出去也可以啊,但是这样的话,别人在调用这个方法的时候,是不是还要考虑这个异常怎么处理呢?是catch呢,还是继续throws呢?这样会引起一系列的链式问题。

也许有人还会说,在操作文件或者数据库的时候,操作完成之后,是要回收资源的,而回收资源的代码一定要写在finally中,以保证资源一定可以回收掉,也许这是它需要让你强制处理的原因。

但是第一,有些时候我并没有操作资源,只是单纯的调了一下jdk的api,比如String的getbytes方法,它就非要强制我处理异常,那这种异常我能怎么处理呢?还不是在catch中throw个RumtimeException,我又没有资源需要回收,它要我强制处理的意义在哪呢?第二,即使我真的有资源需要回收,我也可以用try+finally的方式回收,而不用catch异常,我依然可以把资源回收掉,没有必要去强制处理异常。

在我看来,决定一个异常是否是需要在代码中catbh,应该由开发人员,根据具体情况具体分析,如果真的需要处理,那你就在代码中catch。真的没有必要强制处理,这样只能增加的复杂度,没有什么意义。

大家有什么不同的看法吗?欢迎评论区留言讨论[微笑]

继续谈词汇学习,看到很多家长让孩子小学就背完了1600,学完了新二;初中背完了词汇3500,学完了新3;高中就更别提了,直接就是四六级以上的词汇了。于是我就想问个问题,难道中考要求的1600基本词汇,考纲上的那些核心词汇,这些孩子学会真的了吗?要回答这个问题,就得先定义到底什么才叫做会呢?从词义出发,一个单词只记住了几个中文的意思算会吗?不从一个单词的核心意思出发,死记硬背几个貌似无关的意思算会吗?从运用出发,一个单词的派生词和那么多的常用搭配都不会用算会吗?就更不用说一个单词涉及的谚语格言名言佳句了。当然,从某种程度上来说,这些孩子也算是会。他们只是会阅读词汇,但是他们不会用,不会表达。不论是在口语还是写作上。

面对很多早早读完新概念二的孩子,我对他们说“我们来学学way, time, will,attention这些中考核心词汇的用法吧。”他们都笑了,老师也太搞笑了,3个小学词汇外加1个新2第一课的词汇,老师,你是猴子搬来的救兵吗?于是我就先把我创设的词汇故事,让他们做下中译英,问题一下子全来了。八年级的忘了课文里学过的 in a way的用法、全都不知道in the way是挡路的意思。这真是叫我如何能够慢慢来take>

[微笑] Tomcat服务器是如何保持一直运行的呢? [微笑]

Tomcat处理请求的线程都是守护线程,当守护线程没任务处理且非守护线程执行完毕后,程序就会退出。

那么非守护线程是如何一直执行的呢才能保证Tomcat不退出的呢?

源码扒一扒,没错用的就是 Thread.sleep( 10000 )

try {

awaitThread = Thread.currentThread();

while(!stopAwait) {

try {

Thread.sleep( 10000 );

} catch( InterruptedException ex ) {

// continue and check the flag

}

}

} finally {

awaitThread = null;

}

每天打卡背诵一则英语短文,刺激有趣,快速提高英语水平!(有译文)[加油]

(71)The Lion and the Bull

A lion wanted very much to catch a bull, but he was afraid to attack him for fear of his great size, and finally he thought of a trick to catch the strong bull.He came near the bull and said, “I have killed a fine sheep, my friend; and if you will come home and partake of him with me, I shall be very pleased to have your company.”The lion said this, and hoped that he might attack the bull and make his meal>

java中Condition用来实现条件控制,示例代码:

final Lock lock = new ReentrantLock();

AtomicLong money = new AtomicLong(0L);

final Condition enoughMoneyCondition = lock.newCondition();

final Condition noEnoughMoneyCondition = lock.newCondition();

int i=0;

while (i++<=5) {

new Thread(() -> {

try {

lock.lock();

if (money.longValue() < 1L) {

enoughMoneyCondition.await();

}

String uuid = UUID.randomUUID().toString();

System.out.println(uuid+"1#" + money.longValue());

money.decrementAndGet();

System.out.println(uuid+"2#" + money.longValue());

noEnoughMoneyCondition.signal();

} catch (Throwable thr) {

} finally {

lock.unlock();

}

}).start();

new Thread(() -> {

try {

lock.lock();

if (money.longValue() > 0L) {

noEnoughMoneyCondition.await();

}

money.incrementAndGet();

System.out.println("#34; + money.longValue());

enoughMoneyCondition.signal();

} catch (Throwable thr) {

} finally {

lock.unlock();

}

}).start();

}

本文来自网络,不代表本站立场。转载请注明出处: https://tj.jiuquan.cc/a-2139733/
1
上一篇trackid(trackidblog)
下一篇 ubuntu 10 04(ubuntu12)

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: alzn66@foxmail.com

关注微信

微信扫一扫关注我们

返回顶部