求问关于java中异常处理的问题。。

不是很理解java异常处理中的try catch语句块,比如说我的catch语句块中是一个System.out.println("caught IOEexception":e.getMessage()),那么这个catch语句起到的作用就是提示我一下哪个地方有异常吗?然后我再去它提示我发生异常的地方去修改我的程序?

那么如果我的catch语句里面什么都没写,只是一个catch{};由于写了try catch语句块编译一定会通过,那岂不是说 假如现在我的程序发生了异常 然后被捕获到了 可是它没有提示我碰到发生异常的信息,并且编译通过了 然后运行的时候就会出错 这样的话使用了try catch语句块岂不是还不如不用吗。。?因为如果我不用try catch语句块的话 我的编译就通不过 会提示我哪里出错了 我还可以去改。但是使用了try catch语句块后,编译通过了 可是运行时就出错了 。。
刚开始学习java 真心想不通了〒_〒

用try-catch捕获异常能保证程序即使遭遇异常也扔能安按我们的设计流程运行而不会中断。
异常分支catch中的异常处理通常是根据你的业务逻辑来做的,打印异常只是一种简单的处理方式,当然还有其他的处理,比如:记录异常到数据库,SQL异常的话在异常分支里作数据回滚,socket异常的话重置处理状态………
你直接在catch中是空分支的话,异常就被淹没了,即使发生了了异常,你也不知道,因为你是简单处理了异常,所以程序不会抛错。
如果没有try-catch 捕获异常,那么异常就会由虚拟机抛出,从而导致程序中断。这个就是异常捕获的意义:程序可能遭遇错误,但是仍然能正常运行。

http://jingyan.baidu.com/article/cdddd41c6a132553cb00e107.html

首先,你得知道并不是所有的异常都是能预期的,比如网络传输突然出现问题、用户输入非预期值,这样你就得通过捕获异常来捕捉这些不可预期的异常。捕捉异常可以使程序不至于崩溃,继续执行,你想想,如果在一个函数中间,由于你没有使用try,catch出现异常,后面的代码就无法执行了,虽然你说在编写代码时,我可以调试,但是由于一些不可预期的异常,是你无法保证代码的健壮性,这个时候通过捕捉异常,在catch块进行处理,就可以以友好的界面形式提示用户网络出现异常或者用户输入错误等等,不至于程序崩溃,或者导致用户电脑死机等,这样的产品也不友好。

try-catch给你了一个处理异常的机会。比如你在使用别人的代码(开源库等),你知道这个代码需要读取文件,可能出现读取错误(比如IOException之类的),你就可以使用try-catch捕捉这个错误,试着从错误中恢复(比如采用另一种方式)、通知用户文件可能有问题等,而不是整个程序彻底崩溃。

catch里面什么都不写是一种危险的做法。正如字面意思所讲,当程序出现不可恢复的异常还继续执行,可能导致数据丢失等严重后果。因此一般catch具体的异常,该崩溃时就崩溃。

你似乎对try-catch陷入了一个误区了!
首先异常处理既然使用就有他的道理,首先在try中写入表达式,而这段表达式就是可能出现的问题,而出现问题我又不想让他报错,那么,我们就用catch来
捕获异常,异常有很多中,我们可以将捕获的异常显示在控制台,这样,我们就可以了推断出是什么样的问题了。

而我们使用try-catch主要是为了避免可能出现的问题,而不是一定就会出现问题!

其实是用来保证程序的健壮性

捕捉异常并抛出,就是方便程序员调代码。如果不想看到异常被抛出,就干脆自己在控制台输出一个错误信息

可以不用,如果不用程序可能不够健壮。另外也有已知异常和未知异常之分