首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Exception >

java异常处理机制又解

2014-01-26 
各位大侠,本人初接触java,对于异常的使用不甚明了, 问题: 1,在一个方法中用catch捕捉异常的话,(catch中使用

各位大侠,本人初接触java,对于异常的使用不甚明了,
问题:
1,在一个方法中用catch捕捉异常的话,(catch中使用throw或者不使用throw)2种情况下,
在这个方法声明处都必须要加上throws exception吗?
还是说只要内部catch中使用抛出语句throw就必须要声明,如果catch中不使用throw,
而是其他的操作的话,就不需要在方法头部做throws声明了呢?
2,a类中有个抛出异常的方法,b类中某个方法c调用该方法(非继承的方式)的时候,还需要在
c方法的声明处加上throws exception吗?

3.顺便问个session失效方面的问题,比如登陆到一个网站后,从主页面打开了一个子页面,然后把主页面关掉了,
剩下的子页面应该还是继续可以读取到session的吧,是不是我关闭了所有这个网站相关的页面后,服务器段的session才
会失效呢,我不明白的是如何判断所有页面都被关闭了呢?如果不是以所有相关页面关闭我条件的话,是以IE的关闭我
条件吗,如果这样的话,我退出刚才登陆的网站所有页面后,再重新进入某一个子页面,它还会识别我的身份?

在线等高人回复!


------解决方法--------------------------------------------------------
1,2 本类不处理的异常就抛出,由其上级来处理,如果处理就catch,但catch的时候也可以抛出
3 了解b/S结构,HTTP的无状态协议,服务器对客户机的三种识别方式,URL重写,cookie,隐藏帧
一般采用cookie的结构,有过期时间,对话时发送sessionid,以此来识别。所以你的问题明白这些就了解了。
------解决方法--------------------------------------------------------
1. 如果有异常处理,必须要在方法声明出加上throws exception
2. 要,只要有涉及到异常处理,方法声明就必须加上throws exception,而且你调用的a类中的方法必须放在try块里
3. session通常是用监听的,有在触发某个页面事件以后才会销毁session的情况,但是通常网页方面用的比较多的是过一定的事件session自动销毁,只要session存在,进入子页面肯定会识别你的身份,另外页面关闭无法被判定为事件,因为页面都关闭了,页面的内容自然就无法执行了,这是个浅显的道理。
------解决方法--------------------------------------------------------
问题1:异常的抛出有两种方式 ,一种为手动抛出异常,一种为自动抛出异常;
手动抛出异常必须在程序中显式地使用throws 语句,而自动抛出异常是在程序中使用try{ ....  }catch(Exception e){...},只要有异常发生,系统就会自动进行捕获并进行处理;
问题2:session有作用域问题,比如在jsp中,session的作用域有page,request,application等,每种作用域决定了session在什么时候失效,比如page作用域的session当转向另一个页面的时候就失效了,request在一个请求未结束之前始终有效......

另:如果你是作用JSF框架进行开发的话,session没有page这种作用域,只有其它三种...
------解决方法--------------------------------------------------------
checked exception,unchecked exception;
前者是需查异常,后者是运行时异常;
如果一个异常属于需查异常,并已throws,那么在调用throws这个异常的类或方法的时候要么try,catch,要么throws,否则编译就会出错;
如果是运行时异常,编译不会出错。

异常是程序的一部分;当异常被抛出或者return时结束;
------解决方法--------------------------------------------------------
方法中有异常就必须处理

不处理就标明 throws

反过来 一个方法标明 throws 就表明有异常没处理

调用的 这个方法就必须承担起处理异常的 责任 当然 还可以继续 throws

最终总有个家伙要实际处理异常的 你觉得不是你的就throws
------解决方法--------------------------------------------------------
同志们一定要好好学习一下java编程语言啊!
1、异常就是可能会出现不可预料的情况,所以有的代码我们就要预防着点,try catch 相当于突发事件预案的意思。
如果你写的代码可能出现不可预料的情况,比如IO操作去读一个文件,那个文件可能会被我们无意中删掉,对吧?这就要了亲命了,代码不久傻了吗?代码会问:'你让我来读文件,文件呢?'为了防止这种情况的发生我们就要 try catch,catch到异常之后进行处理,防止程序崩溃掉。如果你不想处理呢,那也不要藏着掖着的,就抛出,而调用这个方法的对象或者方法就会对这个异常进行处理,如果它也不处理,那么就继续抛出。。。
也就是说:
 

Java code
 对于可能会发生不可预料的情况的代码,要么try catch进行处理,要么就抛出,让别人去处理。
        

热点排行