关键字: $异常处理
Java中采用了强制异常捕捉机制,这样一方面提高了程序的可靠性,不过有时候也带来一些麻烦。比如: int i= Integer.parseInt("33");这个我知道它不可能会抛出异常,但是不捕捉异常的话就过不了编译这关,当然这个代码没有意义的。
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的异常处理机制,这些都不是问题。
分享到:
相关推荐
以下是对给定文件中提到的几种常见`RuntimeException`的详细解析: 1. **`NullPointerException` - 空指针引用异常** 当尝试在`null`值上执行操作时,就会抛出`NullPointerException`。这通常是由于变量未被正确...
44. **常见RuntimeException** - 常见的RuntimeException包括空指针异常NullPointerException,数组越界异常ArrayIndexOutOfBoundsException等。 45. **异常处理关键字** - Java通过try, catch, finally, throws...
5. **常见RunTimeException**:这些异常是程序运行时可能出现的错误,例如`NullPointerException`(空指针异常)、`ClassCastException`(类型转换异常)、`ArrayIndexOutOfBoundsException`(数组下标越界)、`...
常见RuntimeException有NullPointerException、ArrayIndexOutOfBoundsException等。throw是用于抛出异常的语句,throws用于声明一个方法可能抛出的异常。 7. final、finally、finalize的区别:final用于声明类、...
- **常见 RuntimeException**:常见的运行时异常包括但不限于: - `ArithmeticException`:算术异常,例如除以零。 - `NullPointerException`:空指针异常。 - `ArrayIndexOutOfBoundsException`:数组索引越界...
常见 RuntimeException 类 例如 ArithmeticException(算术异常)、ArrayStoreException(数组存储异常)、ClassCastException(类转换异常)等,这些异常在运行时可能会抛出,需要进行适当的处理。 以上是对给定...
一些常见的运行时异常,一些常见的运行时异常,一些常见的运行时异常,
RuntimeException在Java编程中是一种常见且特殊类型的异常,它主要在运行时被抛出,通常表示程序员在编写代码时犯的逻辑错误。这类异常不需要显式声明抛出,因此它们被归类为unchecked异常。处理RuntimeException...
在项目开发过程中,遇到RuntimeException异常是常见问题。RuntimeException通常是在运行时由于编程错误导致的,如空指针异常(NullPointerException)、数组越界异常(IndexOutOfBoundsException)等。处理此类异常时...
在处理RuntimeException时,有几种常见的策略可以采用。 首先,分析和理解异常的具体类型和消息是解决RuntimeException的关键步骤。通过查看异常的详细信息,开发者可以得知造成异常的具体原因,比如是否是因为无效...
再者,编写异常处理代码是程序对异常做出响应的常见手段。通过在代码中添加try-catch语句块,可以在异常发生时捕获它,并根据不同的异常类型执行相应的处理逻辑。例如,在代码示例中,我们通过try块中的代码尝试执行...
### 常用的 RuntimeException 知识点解析 在 Java 编程语言中,异常处理是一种重要的机制,用于处理程序运行时可能出现的各种错误情况。异常类(`Exception`)是 `Throwable` 类的一个子类,它又分为两大类:检查性...
`RuntimeException` 是所有运行时异常的基类,包括 `NullPointerException`(空指针异常)、`ArrayIndexOutOfBoundsException`(数组越界异常)和 `ClassCastException`(类型转换异常)等。这些异常通常表明程序中...
当我们尝试写入或读取HDFS上的文件时,如果没有足够的权限,Hive将抛出一个RuntimeException,错误信息为“Permission denied”。解决这个问题的方法是连接shadmin用户,对shdev用户赋予该路径的ACL权限。 三、通用...
- **异常体系**:Java中的异常分为两大类:运行时异常(`RuntimeException`)和非运行时异常(`Exception`)。 - **异常处理机制**:通过`try-catch-finally`语句块来捕获和处理异常。 - **自定义异常**:可以通过...