Redian新闻
>
请问485后拿到EAD有没有可能创业?
avatar
请问485后拿到EAD有没有可能创业?# EB23 - 劳工卡
n*e
1
就两java问题,第一个,啥时候用interface,啥时候用abstract class?举例子说明
。第二个,啥时候用throwable,啥时候用exception?两个都不知道怎么回答。
怎么才能快速提高java水平?请教大牛们。。。
avatar
s*n
2
可以创业吗?
avatar
d*x
3
先看看effective java啊。

【在 n*****e 的大作中提到】
: 就两java问题,第一个,啥时候用interface,啥时候用abstract class?举例子说明
: 。第二个,啥时候用throwable,啥时候用exception?两个都不知道怎么回答。
: 怎么才能快速提高java水平?请教大牛们。。。

avatar
w*p
4
可以。没问题。
avatar
n*e
5
好的,马上就看

【在 d**********x 的大作中提到】
: 先看看effective java啊。
avatar
s*c
6
副申请人随便搞,主申请人要掂量掂量到时候能否提供的了EVL。

【在 s**********n 的大作中提到】
: 可以创业吗?
avatar
p*2
7

过两天让公司给买本看看。

【在 d**********x 的大作中提到】
: 先看看effective java啊。
avatar
m*z
8
zan!!

【在 s********c 的大作中提到】
: 副申请人随便搞,主申请人要掂量掂量到时候能否提供的了EVL。
avatar
l*b
9
head first java吧,然后随便考个SCJP,以后这种都不怕了。
1)需要多种继承关系的时候只能用interface,如果有需要继承到subclass里面的
instance variable的话,就只能用abstract class
2)exception是throwable的subclass,throwable包括了主要2种exception,一个必须
catch的,比如Exception,或者很多类型的IOException都是一定要catch的,另一种是
不一定要catch的,比如ArrayIndexOutOfBound,或者Integer除0的时候的Exception。
具体名字自己查吧。
仅供参考,大牛轻打。
avatar
p*2
10

一直不明白为什么一定要catch呢?主要是出于什么目的?

【在 l**b 的大作中提到】
: head first java吧,然后随便考个SCJP,以后这种都不怕了。
: 1)需要多种继承关系的时候只能用interface,如果有需要继承到subclass里面的
: instance variable的话,就只能用abstract class
: 2)exception是throwable的subclass,throwable包括了主要2种exception,一个必须
: catch的,比如Exception,或者很多类型的IOException都是一定要catch的,另一种是
: 不一定要catch的,比如ArrayIndexOutOfBound,或者Integer除0的时候的Exception。
: 具体名字自己查吧。
: 仅供参考,大牛轻打。

avatar
l*i
11
signature里面写throw xxxException主要是给caller一个机会handle Exception吧,
其实caller也
可以直接不管然后在自己的signature里面照抄那个Exception就好了.不过看名字感觉
Throwable像个interface阿。java里面还有什么xxxable是class么?
大牛出来指点一下
avatar
p*2
12

明白。就是把Exception更规范话了,虽然代码比较恶心了。Throwable确实听起来像
interface.

【在 l***i 的大作中提到】
: signature里面写throw xxxException主要是给caller一个机会handle Exception吧,
: 其实caller也
: 可以直接不管然后在自己的signature里面照抄那个Exception就好了.不过看名字感觉
: Throwable像个interface阿。java里面还有什么xxxable是class么?
: 大牛出来指点一下

avatar
l*b
13
一个简单的实例,如果JDBC的connection你不close,中间出了Exception,那个
connection怎么说?
所以大家如果用JDBC的时候都这么写:
Connection con = null;
try {
con = connectionPool.getConnection();
// Do sth with your connection
} finally {
if (con != null) try { con.close(); } catch (Exception e) {}
}
当然,现在java的这个exception handling的model有很多人反对,因为觉得根本就是
waste of time,比如上面这个例子,你只能close那个connection,其他没就没有任何
事情可以做了。所以很多人现在完全不用try catch。有一些更好的pattern可以用,上
面这个例子在scala里面就可以用loan pattern。Java里面应该可以直接用pool就解决
了。

【在 p*****2 的大作中提到】
:
: 明白。就是把Exception更规范话了,虽然代码比较恶心了。Throwable确实听起来像
: interface.

avatar
l*b
14
Throwable肯定是interface,所有的exception都可以自己handle,也可以throw给
calling method。这个看你具体的需求吧。
exception是泛指,Exception是指java class

【在 l***i 的大作中提到】
: signature里面写throw xxxException主要是给caller一个机会handle Exception吧,
: 其实caller也
: 可以直接不管然后在自己的signature里面照抄那个Exception就好了.不过看名字感觉
: Throwable像个interface阿。java里面还有什么xxxable是class么?
: 大牛出来指点一下

avatar
p*2
15

主要是我写code的时候图方便不想管的那么细。但是用到java的一些函数必须让我try
catch,或者函数throw。我是觉得,我是图快,有exception,你把我程序crash就可以
了。我不care。感觉这东西就Java有吧?C#是不是也没有?

【在 l**b 的大作中提到】
: 一个简单的实例,如果JDBC的connection你不close,中间出了Exception,那个
: connection怎么说?
: 所以大家如果用JDBC的时候都这么写:
: Connection con = null;
: try {
: con = connectionPool.getConnection();
: // Do sth with your connection
: } finally {
: if (con != null) try { con.close(); } catch (Exception e) {}
: }

avatar
T*U
16
1) abstract class 可以有non-abstract method and variable
2) 只有checked exception才必须declare, 倒不一定catch, 可以throw给下家。具体必
须用throwable的地方还真不多,因为exception可以随便定义的
估计只有不知道调用程序会出来个什么东西时,才需要catch throwable

【在 l**b 的大作中提到】
: head first java吧,然后随便考个SCJP,以后这种都不怕了。
: 1)需要多种继承关系的时候只能用interface,如果有需要继承到subclass里面的
: instance variable的话,就只能用abstract class
: 2)exception是throwable的subclass,throwable包括了主要2种exception,一个必须
: catch的,比如Exception,或者很多类型的IOException都是一定要catch的,另一种是
: 不一定要catch的,比如ArrayIndexOutOfBound,或者Integer除0的时候的Exception。
: 具体名字自己查吧。
: 仅供参考,大牛轻打。

avatar
T*U
17
不露棒?

try

【在 p*****2 的大作中提到】
:
: 主要是我写code的时候图方便不想管的那么细。但是用到java的一些函数必须让我try
: catch,或者函数throw。我是觉得,我是图快,有exception,你把我程序crash就可以
: 了。我不care。感觉这东西就Java有吧?C#是不是也没有?

avatar
l*b
18
C#很久很久不用了,但是我记得我和我一个同学说过这个东西,我同学和我说的是C#里
面的exception都是相当于java里面的throwable,不一定要catch的,而且method里面
也不会声明有那个exception会被thrown
都赖,现在真的老老实实写try catch的很少,一般都直接在method里面继续throws

try

【在 p*****2 的大作中提到】
:
: 主要是我写code的时候图方便不想管的那么细。但是用到java的一些函数必须让我try
: catch,或者函数throw。我是觉得,我是图快,有exception,你把我程序crash就可以
: 了。我不care。感觉这东西就Java有吧?C#是不是也没有?

avatar
c*t
19
查了一下,Throwable竟然是class

【在 l**b 的大作中提到】
: Throwable肯定是interface,所有的exception都可以自己handle,也可以throw给
: calling method。这个看你具体的需求吧。
: exception是泛指,Exception是指java class

avatar
p*2
20

啥意思呀?

【在 T****U 的大作中提到】
: 不露棒?
:
: try

avatar
c*t
21
嗯,是的。实在不能throws的时候,我用catch (Exception e)代替catch各种type,然
后基本上啥都不做,或者只是 printStackTrace。我绝对懒人一个。
Throwable没用过。 :(

【在 l**b 的大作中提到】
: C#很久很久不用了,但是我记得我和我一个同学说过这个东西,我同学和我说的是C#里
: 面的exception都是相当于java里面的throwable,不一定要catch的,而且method里面
: 也不会声明有那个exception会被thrown
: 都赖,现在真的老老实实写try catch的很少,一般都直接在method里面继续throws
:
: try

avatar
c*t
22
not robust!

【在 p*****2 的大作中提到】
:
: 啥意思呀?

avatar
p*2
23

参加比赛还要啥robust呀。速度至上。

【在 c********t 的大作中提到】
: not robust!
avatar
l*b
24
NB,明显违反了Java的命名规则。

【在 c********t 的大作中提到】
: 查了一下,Throwable竟然是class
avatar
n*e
25
确实是class,从来不用的以前,到现在还没搞明白到底区别在哪里,小印太狠了

【在 c********t 的大作中提到】
: 查了一下,Throwable竟然是class
avatar
p*2
26
刚才看了一下书,还没明白。到底什么时候用throwable呢?
avatar
l*b
27
个人感觉,你的app需要处理所有的exception的时候,你可以try catch Throwable,
还有就是你要自己写unchecked exception的时候也要继承Throwable。其他就没什么用
了,一般写library的会用到比较多,如果是写application的,一般很伤会用到
throwable,但是我们在写一些service什么的时候会习惯catch 所有的Throwable然后
log一下看看是什么。

【在 p*****2 的大作中提到】
: 刚才看了一下书,还没明白。到底什么时候用throwable呢?
avatar
l*a
28
throwable包括两种
一种是Error另一种是Exception
你说的checked exception/unchecked exception

【在 l**b 的大作中提到】
: head first java吧,然后随便考个SCJP,以后这种都不怕了。
: 1)需要多种继承关系的时候只能用interface,如果有需要继承到subclass里面的
: instance variable的话,就只能用abstract class
: 2)exception是throwable的subclass,throwable包括了主要2种exception,一个必须
: catch的,比如Exception,或者很多类型的IOException都是一定要catch的,另一种是
: 不一定要catch的,比如ArrayIndexOutOfBound,或者Integer除0的时候的Exception。
: 具体名字自己查吧。
: 仅供参考,大牛轻打。

avatar
l*b
29
嗯,大牛给的更加准确,我已经全部还给书本了。

【在 l*****a 的大作中提到】
: throwable包括两种
: 一种是Error另一种是Exception
: 你说的checked exception/unchecked exception

avatar
l*i
30
二爷您看看那几个知名的java topcoder, petr, Egor, uwi啥的,人家不仅搞得快,
而且各项指标包括readability, variable naming都不会偷懒的。

【在 p*****2 的大作中提到】
: 刚才看了一下书,还没明白。到底什么时候用throwable呢?
avatar
p*2
31

如果java没有这死限制不是可以更快吗?有了这个限制反而影响了readability。

【在 l***i 的大作中提到】
: 二爷您看看那几个知名的java topcoder, petr, Egor, uwi啥的,人家不仅搞得快,
: 而且各项指标包括readability, variable naming都不会偷懒的。

avatar
p*2
32

不过他们可能有模版,所以也无所谓。

【在 l***i 的大作中提到】
: 二爷您看看那几个知名的java topcoder, petr, Egor, uwi啥的,人家不仅搞得快,
: 而且各项指标包括readability, variable naming都不会偷懒的。

avatar
p*2
33

那到底什么时候用throwable呢?

【在 l**b 的大作中提到】
: 嗯,大牛给的更加准确,我已经全部还给书本了。
avatar
y*g
34
Exception的解释不太对,你说的是checked和unchecked exception, unchecked
exception是runtimeexeption和subclass
不是throwable.

【在 l**b 的大作中提到】
: head first java吧,然后随便考个SCJP,以后这种都不怕了。
: 1)需要多种继承关系的时候只能用interface,如果有需要继承到subclass里面的
: instance variable的话,就只能用abstract class
: 2)exception是throwable的subclass,throwable包括了主要2种exception,一个必须
: catch的,比如Exception,或者很多类型的IOException都是一定要catch的,另一种是
: 不一定要catch的,比如ArrayIndexOutOfBound,或者Integer除0的时候的Exception。
: 具体名字自己查吧。
: 仅供参考,大牛轻打。

avatar
y*g
35
著名的outofmemoryerror就是throwable啊..我也听不明白为什么要有这个。

【在 c********t 的大作中提到】
: 嗯,是的。实在不能throws的时候,我用catch (Exception e)代替catch各种type,然
: 后基本上啥都不做,或者只是 printStackTrace。我绝对懒人一个。
: Throwable没用过。 :(

avatar
p*2
36

outofmemoryerror是Error吗?就是lolhaha讲的那个。Throwable 有两个子类,Error和
Exception

【在 y*******g 的大作中提到】
: 著名的outofmemoryerror就是throwable啊..我也听不明白为什么要有这个。
avatar
y*g
37
是啊,我唯一能想到throwable的作用就是这个。。在catch(Exception)的时候照样用
oom来crash app

【在 p*****2 的大作中提到】
:
: outofmemoryerror是Error吗?就是lolhaha讲的那个。Throwable 有两个子类,Error和
: Exception

avatar
p*2
38

所以应该catch(Throwable)? 这样error, exception全catch住了。
那一般写production code是不是主要是catch exception呢?

【在 y*******g 的大作中提到】
: 是啊,我唯一能想到throwable的作用就是这个。。在catch(Exception)的时候照样用
: oom来crash app

avatar
l*a
39
对,I just learned from scjp
Error是那种你没法处理的exception
your app won't be able to recover from a Error

【在 p*****2 的大作中提到】
:
: 所以应该catch(Throwable)? 这样error, exception全catch住了。
: 那一般写production code是不是主要是catch exception呢?

avatar
t*2
40
比如除以0?

【在 l*****a 的大作中提到】
: 对,I just learned from scjp
: Error是那种你没法处理的exception
: your app won't be able to recover from a Error

avatar
p*2
41

我今天也看了一下这个。
不过刚才yangcheng的意思catch(Throwable)就可以catch Error?

【在 l*****a 的大作中提到】
: 对,I just learned from scjp
: Error是那种你没法处理的exception
: your app won't be able to recover from a Error

avatar
y*g
42
不知道什么是best:(
一般发生了unchecked exception, error什么说明的确有code问题吧?还是应该fix,
不代表catch了就能continue. 当然最近我某一段code的确没什么办法,在太烂的手机
上某个功能就是容易出outofMemory 而且没有leak。只好catch了 。我commit的时候觉
得很愧疚

【在 p*****2 的大作中提到】
:
: 我今天也看了一下这个。
: 不过刚才yangcheng的意思catch(Throwable)就可以catch Error?

avatar
y*g
43
这个算什么无法recover啊 连exception都不是

【在 t*******2 的大作中提到】
: 比如除以0?
avatar
p*2
44

貌似dividedbyzero是exception, 我刚才试了试,可以catch

【在 y*******g 的大作中提到】
: 这个算什么无法recover啊 连exception都不是
avatar
p*2
45

刚才verify了,就是这个意思。

【在 p*****2 的大作中提到】
:
: 貌似dividedbyzero是exception, 我刚才试了试,可以catch

avatar
y*g
46
整数是,浮点不是

【在 p*****2 的大作中提到】
:
: 刚才verify了,就是这个意思。

avatar
p*2
47

浮点数貌似不是非法操作呀

【在 y*******g 的大作中提到】
: 整数是,浮点不是
avatar
y*g
48
恩 我就是这个意思。浮点连exception都不是。没想到整数是。。learnt something
new

【在 p*****2 的大作中提到】
:
: 浮点数貌似不是非法操作呀

avatar
p*2
49

主要是整数不能代表无限吗?

【在 y*******g 的大作中提到】
: 恩 我就是这个意思。浮点连exception都不是。没想到整数是。。learnt something
: new

avatar
x*p
50
Observable is also a class.

【在 l***i 的大作中提到】
: signature里面写throw xxxException主要是给caller一个机会handle Exception吧,
: 其实caller也
: 可以直接不管然后在自己的signature里面照抄那个Exception就好了.不过看名字感觉
: Throwable像个interface阿。java里面还有什么xxxable是class么?
: 大牛出来指点一下

avatar
x*p
51
Interface is used everywhere. A good example to use abstract class is to use
the GoF pattern called Template Method. Prototype pattern can also use
abstract class.
avatar
w*z
52
Java7, can catch multiple exception, add support for resource mgr, reduce
a lot of boilerplate.

【在 c********t 的大作中提到】
: 嗯,是的。实在不能throws的时候,我用catch (Exception e)代替catch各种type,然
: 后基本上啥都不做,或者只是 printStackTrace。我绝对懒人一个。
: Throwable没用过。 :(

avatar
b*i
53
看来大家都不是很懂exception的目的。
exception其非常重要的目的是不通过原来的return返回,就是说提供了另外的返回机
制。比如你evaluate一个表达式 a = f(x,t); 结果f里面遇到一个问题,1/0, 你说a
到底应该等于几呢?
假设这个表达式在程序运行的时候,由一个循环从文件里面读取数据,其中通过多层函
数调用到达了那个表达式求值的地方。那么,一个很好的处理办法就是,在表达式求值
得地方或者f里面检查问题,throw 一个你定义的意义更明确的Exception的子类,在外
层那个循环catch这个Exception的子类,然后程序就不用给a 赋值了,而是直接跳出九
重天,回到可以控制的地方,告诉用户文件里面有问题。这样,你在外层循环到表达式
求值之间的层都不catch,留给最外层catch。catch之后,显然不是crash,而是显示一
个错误信息,然后等待用户重新调入文件,等办法。

try

【在 p*****2 的大作中提到】
:
: 主要是整数不能代表无限吗?

avatar
p*2
54
关键是我就是想crash呀

【在 b***i 的大作中提到】
: 看来大家都不是很懂exception的目的。
: exception其非常重要的目的是不通过原来的return返回,就是说提供了另外的返回机
: 制。比如你evaluate一个表达式 a = f(x,t); 结果f里面遇到一个问题,1/0, 你说a
: 到底应该等于几呢?
: 假设这个表达式在程序运行的时候,由一个循环从文件里面读取数据,其中通过多层函
: 数调用到达了那个表达式求值的地方。那么,一个很好的处理办法就是,在表达式求值
: 得地方或者f里面检查问题,throw 一个你定义的意义更明确的Exception的子类,在外
: 层那个循环catch这个Exception的子类,然后程序就不用给a 赋值了,而是直接跳出九
: 重天,回到可以控制的地方,告诉用户文件里面有问题。这样,你在外层循环到表达式
: 求值之间的层都不catch,留给最外层catch。catch之后,显然不是crash,而是显示一

avatar
l*b
55
try {
int i = 1 / 0;
} catch (Throwable t) {
System.out.println("Major error, dude!", t);
System.exit(-1);
}

【在 p*****2 的大作中提到】
: 关键是我就是想crash呀
avatar
p*2
56

啥意思?

【在 l**b 的大作中提到】
: try {
: int i = 1 / 0;
: } catch (Throwable t) {
: System.out.println("Major error, dude!", t);
: System.exit(-1);
: }

avatar
l*b
57
crash了。

【在 p*****2 的大作中提到】
:
: 啥意思?

avatar
p*2
58

不能catch吗?

【在 l**b 的大作中提到】
: crash了。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。