博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
各种异常的终结
阅读量:4691 次
发布时间:2019-06-09

本文共 2534 字,大约阅读时间需要 8 分钟。

 

   今天对异常进行了一次总结和归纳,可能是和我以前的习惯问题吧,使用myeclipse直接一点就可以使用 try catch语句自动的抛出异常,知道一心想进黑马才用心的去专研了一下各种异常的情况,下面就对几种常见的异常进行一次小小的总结:

     所有的异常都继承自RuntimeException类,首先是类型转换异常,这种异常发生在将一个对象转换成非继承体系上的类的时候。

    如以下代码所示:

        

1 package com.itmeima.zxd; 2  3 public class ExceptionDemo { 4  5     /** 6      * @author 张学东 7      * 运行时的各种异常 8      */ 9     public static void main(String[] args) {10         Book book=new NovelBook();11         Object o=book;12         String s=(String)o;13         System.out.println(s);14         }15 16 }17 class Book{18     private String title;19     private String content;20     private String author;21     22 }23 class NovelBook extends Book{24     private String type="爱情";25     public String  toString(){26         return "主题是"+type;27     }28 }

   以上代码在运行时会弹出以下异常信息:

Exception in thread "main" java.lang.ClassCastException: com.itmeima.zxd.NovelBook cannot be cast to java.lang.String    at com.itmeima.zxd.ExceptionDemo.main(ExceptionDemo.java:12)

   异常ClassCastException就是类型转换异常的信息,这是由于类NovelBook可以被转换成其父类 Book (Book book=new NovelBook();)或者基类Object,但是却不能转换成String类型的对象。

   我们注意到代码System.out.println(s);并没有被执行,这是运行时异常的特点,一旦代码发生了运行时异常,就会立即停止运行并抛出异常。

   第二种常见的异常是数组访问越界的异常ArrayIndexOutOfBoundsException.这种异常在访问不存在的数组元素是发生。如以下代码所示:

 

package com.itmeima.zxd;public class ArrayIndexOutOfBoundsExceptionDemo {    /**     * @author 張學東     * 各种异常的总结     * 数据访问越界异常     */    public static void main(String[] args) {        int[] i=new int[] {1,2,3,4,5};        for(int j=0;j<6;j++){            System.out.println(i[j]);                    }    }}

程序运行后会抛出以下异常:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5    at com.itmeima.zxd.ArrayIndexOutOfBoundsExceptionDemo.main(ArrayIndexOutOfBoundsExceptionDemo.java:12)

最后一种异常是空指针异常 NullpointerException,这种异常发生在一个引用未初始化的对象的时候。如以下代码所示:

package com.itmeima.zxd;public class nullPointerException {    /**     * @author 张学东     * @exception nullPointerException     */    public static void main(String[] args) {        MyClass s=null;        s.getName();    }}//空指针异常class MyClass{    private String name;  //姓名    public String getName(){  //get方法        return name;    }    public void setName(String name){  //set方法        this.name=name;    }}

这段代码运行后会报以下错误:

 

Exception in thread "main" java.lang.NullPointerException    at com.itmeima.zxd.nullPointerException.main(nullPointerException.java:11)

 这是由于MyClass类型的对象s还没有被初始化,由于系统没有为其发配内存和运算所需的资源,因此直接调用s.getName()会由于没有可供的资源而抛出异常。

  出以上异常以外,还有几种异常 暂时还没有终结出来。。。

    

 

 

转载于:https://www.cnblogs.com/zxd-java/archive/2012/10/02/2710019.html

你可能感兴趣的文章
导入properties时的坑
查看>>
配置NRPE的通讯
查看>>
shp系列(一)——利用C++进行shp文件的读(打开)与写(创建)开言
查看>>
匹配两个空格之间的字符。。。
查看>>
CSS 文字溢出 变成省略号 ...
查看>>
Spring事务
查看>>
java编程基础(三)流程控制语句
查看>>
让数据库跑的更快的7个MySQL优化建议
查看>>
jquery 取id模糊查询
查看>>
解决在vue中,自用mask模态框出来后,下层的元素依旧可以滑动的问题
查看>>
修改node节点名称
查看>>
PAT(B) 1014 福尔摩斯的约会(Java)
查看>>
PAT甲级题解-1123. Is It a Complete AVL Tree (30)-AVL树+满二叉树
查看>>
项目开发总结报告(GB8567——88)
查看>>
SSH加固
查看>>
端口扫描base
查看>>
iOS IM开发的一些开源、框架和教程等资料
查看>>
FansUnion:共同写博客计划终究还是“流产”了
查看>>
python 二维字典
查看>>
pip 警告!The default format will switch to columns in the future
查看>>