`
elaine0111
  • 浏览: 95611 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

(转)java runtimeexception整理

 
阅读更多
Java中所有异常或者错误都继承Throwable,我们把它分为三类吧:
1.Error:所有都继承自Error,表示致命的错误,比如内存不够,字节码不合法等。
2.Exception:这个属于应用程序级别的异常,这类异常必须捕捉。
3.RuntimeException:奇怪RuntimeException继承了Exception,而不是直接继Error,   这个表示系统异常,比较严重。



    Error我们很少遇到,但是并不是说Error就一定非常致命,举个例子,NoSuchMethodError表示没有这个方法,你调用的方法不存在,你一定觉得奇怪,不存在怎么编译的过去呀?很简单的,你先编译好一个被调用的类A,给一个方法。然后在你的程序调用它,编译没问题,运行也没问题。现在再把A类中这个方法去掉,重新编译一遍,你再运行你的程序就知道错误是怎么回事了。
Exception不用说,我们要自己捕捉。
RuntimeException可以说见的最多了,下面我们说明一下常见的RuntimeException:



NullPointerException:见的最多了,其实很简单,一般都是在null对象上调用方法了。
String s=null;
boolean eq=s.equals(""); // NullPointerException
这里你看的非常明白了,为什么一到程序中就晕呢?
public int getNumber(String str){
  if(str.equals("A")) return 1;
   else if(str.equals("B")) return 2;
}
这个方法就有可能抛出NullPointerException,我建议你主动抛出异常,因为代码一多,你可能又晕了。
public int getNumber(String str){
  if(str==null) throw new NullPointerException("参数不能为空");
                                    //你是否觉得明白多了
  if(str.equals("A")) return 1;
   else if(str.equals("B")) return 2;
}



NumberFormatException:继承IllegalArgumentException,字符串转换为数字时。
比如int i= Integer.parseInt("ab3");



ArrayIndexOutOfBoundsException:数组越界
比如 int[] a=new int[3]; int b=a[3];



StringIndexOutOfBoundsException:字符串越界
比如 String s="hello"; char c=s.chatAt(6);



ClassCastException:类型转换错误
比如 Object obj=new Object(); String s=(String)obj;



UnsupportedOperationException:该***作不被支持,如果我们希望不支持这个方法,可以抛出这个异常。既然不支持还要这个干吗?有可能子类中不想支持父类中有的方法,可以直接抛出这个异常。



ArithmeticException:算术错误,典型的就是0作为除数的时候。



IllegalArgumentException:非法参数,在把字符串转换成数字的时候经常出现的一个异常,我们可以在自己的程序中好好利用这个异常。
    Java中所有异常或者错误都继承Throwable,我们把它分为三类吧:
1.Error:所有都继承自Error,表示致命的错误,比如内存不够,字节码不合法等。
2.Exception:这个属于应用程序级别的异常,这类异常必须捕捉。
3.RuntimeException:奇怪RuntimeException继承了Exception,而不是直接继Error,   这个表示系统异常,比较严重。



    Error我们很少遇到,但是并不是说Error就一定非常致命,举个例子,NoSuchMethodError表示没有这个方法,你调用的方法不存在,你一定觉得奇怪,不存在怎么编译的过去呀?很简单的,你先编译好一个被调用的类A,给一个方法。然后在你的程序调用它,编译没问题,运行也没问题。现在再把A类中这个方法去掉,重新编译一遍,你再运行你的程序就知道错误是怎么回事了。
Exception不用说,我们要自己捕捉。
RuntimeException可以说见的最多了,下面我们说明一下常见的RuntimeException:



NullPointerException:见的最多了,其实很简单,一般都是在null对象上调用方法了。
String s=null;
boolean eq=s.equals(""); // NullPointerException
这里你看的非常明白了,为什么一到程序中就晕呢?
public int getNumber(String str){
  if(str.equals("A")) return 1;
   else if(str.equals("B")) return 2;
}
这个方法就有可能抛出NullPointerException,我建议你主动抛出异常,因为代码一多,你可能又晕了。
public int getNumber(String str){
  if(str==null) throw new NullPointerException("参数不能为空");
                                    //你是否觉得明白多了
  if(str.equals("A")) return 1;
   else if(str.equals("B")) return 2;
}



NumberFormatException:继承IllegalArgumentException,字符串转换为数字时。
比如int i= Integer.parseInt("ab3");



ArrayIndexOutOfBoundsException:数组越界
比如 int[] a=new int[3]; int b=a[3];



StringIndexOutOfBoundsException:字符串越界
比如 String s="hello"; char c=s.chatAt(6);



ClassCastException:类型转换错误
比如 Object obj=new Object(); String s=(String)obj;



UnsupportedOperationException:该***作不被支持,如果我们希望不支持这个方法,可以抛出这个异常。既然不支持还要这个干吗?有可能子类中不想支持父类中有的方法,可以直接抛出这个异常。



ArithmeticException:算术错误,典型的就是0作为除数的时候。



IllegalArgumentException:非法参数,在把字符串转换成数字的时候经常出现的一个异常,我们可以在自己的程序中好好利用这个异常。


分享到:
评论

相关推荐

    java解析wsdl文档获取方法与参数

    在Java开发中,有时我们需要与Web服务进行交互,这时候就需要用到WSDL(Web Services Description Language)文档。WSDL是一种XML格式,它定义了服务的位置、接口以及如何调用这些服务。本文将深入探讨如何使用Java...

    Java异常详解_动力节点Java学院整理

    未检查异常(Unchecked Exception)通常是程序运行时出现的错误,如NullPointerException、ArrayIndexOutOfBoundsException等,它们继承自RuntimeException。未检查异常在编译时不强制要求处理,但强烈建议进行异常...

    java核心知识点整理.pdf

    25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................

    java 历届整理的出来的面试题

    #### 十四、常见运行时异常(RuntimeException) - **示例**: - `ArithmeticException`: 算术异常。 - `NullPointerException`: 对象引用为空时发生的异常。 - 更多异常类型如`ArrayIndexOutOfBoundsException`等...

    Java面试题大全(自己整理的最全的Java面试题,背过了很有用)

    根据提供的文件信息,这里将对其中提及的关键Java概念和知识点进行详细解释: ### final, finally, finalize #### final `final` 是一个关键字,在 Java 中用于限制类、方法或变量的行为: - **类**: 当一个类被...

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm ------------------------------------------------- 本教程由yyc,spirit整理 ------------------------------------------------- “Thinking in Java...

    java面试宝典整理版PDF

    #### 十四、常见的 `RuntimeException` - **示例**: - `ArithmeticException`: 数学运算异常。 - `ArrayStoreException`: 数组存储异常。 - 更多常见的运行时异常还包括: - `NullPointerException`: 空指针...

    Java 常用API的运用,效率及技巧

    - **RuntimeException**: 运行时异常。 #### 10. JDBC 类库 JDBC(Java Database Connectivity)是 Java 语言中用来连接数据库的标准 API。主要包括: - **DriverManager**: 加载驱动并建立连接。 - **Connection...

    阿里巴巴java电话面试整理.doc

    【阿里巴巴Java电话面试整理】 面试过程中,阿里巴巴可能会考察求职者的Java基础知识、JVM理解、垃圾回收机制、类加载器的工作原理、面向对象编程的概念、异常处理以及IO流的区别等相关知识。以下是对这些知识点的...

    Java葵花宝典整理后(2012).pdf

    常见的5个RuntimeException** - **`NullPointerException`:** 对象引用为null时调用方法或访问属性。 - **`ArrayIndexOutOfBoundsException`:** 访问数组索引超出范围。 - **`ClassCastException`:** 发生强制类型...

    java 英语学习词汇

    根据提供的文件信息,我们可以整理出一系列与Java编程语言及其英语术语相关的知识点。下面将对这些词汇进行详细解读,以便更好地理解和掌握Java编程的基础概念及专业术语。 ### A. 数组(Array) 数组是一种基本的...

    java基础面试知识整理

    - Exception分为运行时异常(RuntimeException,无需显式捕获)和检查异常(需要显式捕获或声明)。 以上是Java基础面试中常见的知识点,理解和掌握这些内容对于面试至关重要,同时也反映了程序员的基本功。

    java面试葵花宝典整理版

    #### 十四、常见的 RuntimeException 异常 - **ArithmeticException**:算术异常,例如除以零。 - **ArrayStoreException**:存储异常,尝试将错误类型的对象放入数组。 - **BufferOverflowException**:缓冲区溢出...

    JAVA面试题目整理(答案).doc

    ### JAVA面试题目整理知识点 #### 1. 区别作用域 public, private, protected, 以及不写时的区别 - **public**: 当方法或者变量声明为`public`时,可以在任何地方被访问,包括同一个包内以及其他包内的类。 - **...

    JAVA面试题集-整理

    异常分为两大类:运行时异常(`RuntimeException`)和检查型异常(`Checked Exception`)。 #### 6. final关键字的用途 `final`关键字在Java中有多种用途: - 修饰变量:表示该变量一旦被赋值后就不能再改变。 - ...

    文章分类:Java编程,java面试题1

    根据给定的信息,我们可以整理出一系列与Java编程相关的面试题及知识点,具体如下: ### Java访问修饰符 1. **Public、Private、Protected 和 Default(友好):** - `public`:允许类、方法、变量等在任何地方被...

    关于Java异常处理的几条建议_动力节点Java学院整理

    * 运行时异常:RuntimeException 类及其子类,不需要在方法声明中使用 throws 关键字声明,可以在任何时候抛出。 结论 Java 异常处理机制是 Java 语言中的一种重要机制,用于处理程序中的异常情况。通过遵循异常...

    JAVA核心面试知识整理最新版.zip

    这份“JAVA核心面试知识整理最新版”旨在为求职者提供全面的复习材料,确保他们在面试时能对答如流。 1. **Java基础** - **数据类型**:Java分为两种数据类型,基本类型和引用类型。基本类型包括整型(byte, short...

    java面试突击资料

    - **自定义异常**:通常通过继承Exception或RuntimeException来创建。 **2.3 多线程** - **线程创建方式**:继承Thread类、实现Runnable接口、使用Callable与Future。 - **线程安全问题**:synchronized关键字、...

Global site tag (gtag.js) - Google Analytics