精彩专题推荐:建站之入门课 建站之必修课 建站之关键课 网站价值所在 流量提高专题 css+div 标准 个人网站打造全过程
返回建站学首页
导航:
建站首页 | 网站设计 | 网站开发 | 网站运营 | 网页软件 | 建站指南 | 搜索优化 | 图像处理 | 视频教程 | 书籍教程 | 建站专题
当前位置:首页>网站开发>JSP教程>正文

对于JAVA基础测试中常见的异常问题汇总


来源:不详 时间:07-10-17 点击: 点击这里收藏本文

· throw语句 

throw总是出现在函数体中,用来抛出一个异常。程序会在throw语句后立即终止,它后面的语句执行不到,然后在包含它的所有try块中(可能在上层调用函数中)从里向外寻找含有与其匹配的catch子句的try块。所有的方法都使用“throw”语句来抛出一个异常。Throw语句需要一个单独throwable对象,这个对象是任意Throwable类的子类。

例如:

boolean testEx() throws Exception{
        boolean ret = true;
        try
    {
            ret = testEx1();
        }
        catch (Exception e)
       {
            System.out.println("testEx, catch exception");
            ret = false;
            throw e;
        }
       finally
      {
            System.out.println("testEx, finally; return value="+ret);
            return ret;
        }
    }

4、JAVA错误: java.lang.Error

原因:

1)对系统所访问外部资源,未执行关闭操作,导致外部资源大量浪费,最终可能导致系统无法正常运行;

2)对系统所访问的外部资源关闭次数太多,外部系统无法正常处理;

3)系统访问的外部资源出现异常情况。

解决方案:

1)访问外部资源前,首先检查该资源(如数据库)是否可正常连接或操作。

2)访问外部资源时,如果进行了连接,一定进行关闭操作,并仅进行一次关闭操作。

3)尽量在同一操作中共享外部资源,以减少该操作对资源的消费,提高程序的执行效率

5、空指针错误 :java.lang.NullPointerException

使用基本的JAVA数据类型,变量的值要么已经是默认值,如果没有对其正常赋值,程序便不能通过编译,因此使用基本的JAVA数据类型(double,float,boolean,char,int,long)一般不会引起空指针异常。由此可见,空指针异常主要跟与对象的操作相关。


下面先列出了可能发生空指针异常的几种情况及相应解决方案:


不管对象是否为空就直接开始使用。

(JSP)代码段1:

out.println(request.getParameter("username"));

描述:

代码段1的功能十分简单,就是输出用户输入的表域"username"的值。

说明:

看上去,上面的语句找不出什么语法错误,而且在大多数情况下也遇不到什么问题。但是,如果某个用户在输入数据时并没有提供表单域"username"的值,或通过某种途径绕过表单直接输入时,此时request.getParameter("username")的值为空(不是空字符串,是空对象null。),out对象的println方法是无法直接对空对象操作,因此代码段1所在的JSP页面将会抛出"java.lang.NullPointerException"异常。

即使对象可能为空时,也调用java.lang.Object或Object对象本身的一些方法如toString(), equals(Object obj)等操作。

(JSP)代码段2:

String userName = request.getParameter("username");
If (userName.equals("root"))
{....}

描述:

代码段2的功能是检测用户提供的用户名,如果是用户名称为"root"的用户时,就执行一些特别的操作。

说明:

在代码段2中,如果有用户没有提供表单域"username"的值时,字符串对象userName为null值,不能够将一个null的对象与另一个对象直接比较,同样,代码段2所在的JSP页面就会抛出(java.lang.NullPointerException)空指针错误。

(JSP)代码段3:

String userName = session.getAttribute("session.username").toString();

描述:

代码段3的功能是将session中session.username的值取出,并将该值赋给字符串对象 userName。

说明:

在一般情况下,如果在用户已经进行某个会话,则不会出现什么问题;但是,如果此时应用服务器重新启动,而用户还没有重新登录,(也可能是用户关闭浏览器,但是仍打开原来的页面。)那么,此时该session的值就会失效,同时导致session中的session.username的值为空。对一个为null的对象的直接执行toString()操作,就会导致系统抛出(java.lang.NullPointerException)空指针异常。

9 7 3 1 2 3 4 4 8 :

  把此文章收藏到:          
广而告之
文章搜索
  • Google JZxue.Com

关于我们 | 联系我们 | 友情链接 | 网站地图
Copyright © 2005 - 2006 建站学 All rights reserved.