「java异常使用」Java中异常
今天给各位分享java异常使用的知识,其中也会对Java中异常进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
北大青鸟java培训:Java中异常与错误的处理方法?
Java中的异常处理机制已经比较成熟,我们的Java程序到处充满了异常的可能,如果对这些异常不做预先的处理,那么将来程序崩溃就无从调试,很难找到异常所在的位置。
河北电脑培训将探讨一下Java中异常与错误的处理方法,一起来看看。
异常与错误:异常:在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发人员)已经犯了个错误,现在有一个机会来修改它。
Java中使用异常类来表示异常,不同的异常类代表了不同的异常。
但是在Java中所有的异常都有一个基类,叫做Exception。
错误:它指的是一个合理的应用程序不能截获的严重的问题。
大多数都是反常的情况。
错误是VM的一个故障(虽然它可以是任何系统级的服务)。
所以,错误是很难处理的,一般的开发人员(当然不是你)是无法处理这些错误的,比如内存溢出。
和异常一样,在Java中用错误类来表示错误,不同的错误类代表了不同的错误。
但是在Java中所有的错误都有一个基类,叫做Error。
综上,我们可以知道异常和错误最本质的区别就是异常能被开发人员处理而错误时系统本来自带的,一般无法处理也不需要我们程序员来处理。
1.一个异常是在一个程序执行过程中出现的一个事件,它中断了正常指令的运行2.错误,偏离了可接受的代码行为的一个动作或实例异常的结构分类:1、运行时异常(未检查异常)2、编译时异常(已检查异常)运行异常即是RuntimeException;其余的全部为编译异常在Java中异常Exception和错误Error有个共同的父类Throwable。
ErrorExceptionruntimeException几个子类1、java.lang.ArrayIndexOutOfBoundsException数组索引越界异常。
当对数组的索引值为负数或大于等于数组大小时抛出。
2、java.lang.ArithmeticException算术条件异常。
譬如:整数除零等。
3、java.lang.NullPointerException空指针异常。
当应用试图在要求使用对象的地方使用了null时,抛出该异常。
譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等4、java.lang.ClassNotFoundException找不到类异常。
当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常。
JAVA异常怎么使用
import java.io.*;
public class TestEx {
public static void main(String[] args) {
try {
new TestEx().f2();
} catch (IOException e) {
e.printStackTrace();
}
/*
int[] arr = {1, 2, 3};
System.out.println(arr[2]);
try {
System.out.println(2/0);
} catch (ArithmeticException e) {
System.out.println("系统正在维护,请与管理员联系");
e.printStackTrace();
}
*/
//TestEx te = new TestEx();
//te.m(0);
/*
try {
new TestEx().m(0);
} catch (ArithmeticException ae) {
ae.printStackTrace();
System.out.println("出错了");
}
*/
FileInputStream in = null;
try {
in = new FileInputStream("myfile.txt");
int b;
b = in.read();
while (b != -1) {
System.out.print((char) b);
b = in.read();
}
} catch (IOException e) {
System.out.println(e.getMessage());
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
void m(int i) throws ArithmeticException {
if(i==0)
throw new ArithmeticException("被除数为0");
}
void f() throws FileNotFoundException , IOException {
FileInputStream in = new FileInputStream("myfile.txt");
int b;
b = in.read();
while (b != -1) {
System.out.print((char) b);
b = in.read();
}
}
void f2() throws IOException {
/*
try {
f();
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
e.printStackTrace();
}
*/
f();
}
}
java异常处理存在的意义是什么?
Java中异常处理的意义主要有两个方面:
一是为了给用户友好的提示,不至于遇到特殊情况程序终止或者出现一堆报错信息,处理之后就可以自定义一些指导建议提供给用户;
异常处理方法:Java提供特有的语句进行处理异常。
try{
需要被检测的代码。
}
catch(异常类 变量){
处理异常的代码。
}
finally{
一定会执行的语句。
}
throws:声明方法可能要抛出的异常。
throw:手动抛出异常。
异常在子类覆盖中的体现:
①子类覆盖父类时,如果父类方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或该异常的子类。
②父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集。
③如果父类或者接口的方法没有抛出异常,那么子类在覆盖方法时,也不可以抛出异常。
④如果子类方法发生了异常。就必须进行try处理,绝对不能抛出。
java中 方法中抛出异常处理方法
Java语言提供两种异常处理机制:捕获异常和声明抛弃异常。
1、捕获异常:
(1)在Java程序运行过程中系统得到一个异常对象是,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。
(2)找到能够处理这种类型异常的方法后,运行时系统把当前异常交给这个方法处理;如果找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。
(3)捕获异常是通过try-catch-finally语句实现的。语法为:
try{
...
}catch(ExceptionName1e){
...
}catch(ExceptionName2e){
...
}
...
}finally{
...
}
2、声明抛弃异常:
(1)当Java程序运行时系统得到一个异常对象时,如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛弃异常。
(2)声明抛弃异常是在一个方法声明中的throws子句中指明的。如:
publicintread()throwsIOException{
...
}
其中throwsIOException就是声明抛弃异常,throws后可以跟多个异常类型。
扩展资料:
程序设计语言的异常机制:
1、多数语言的异常机制的语法是类似的:用throw或raise抛出一个异常对象(Java或C++等)或一个特殊可扩展的枚举类型的值(如Ada语言);
2、异常处理代码的作用范围用标记子句(try或begin开始的语言作用域)标示其起始,以第一个异常处理子句(catch,except,resuce等)标示其结束;可连续出现若干个异常处理子句,每个处理特定类型的异常。
3、某些语言允许else子句,用于无异常出现的情况。更多见的是finally,ensure子句,无论是否出现异常它都将执行,用于释放异常处理所需的一些资源。
(1)C++异常处理是资源获取即初始化(Resource-Acquisition-Is-Initialization)的基础。
(2)C语言一般认为是不支持异常处理的。Perl语言可选择支持结构化异常处理(structuredexceptionhandling)。
(3)Python语言对异常处理机制是非常普遍深入的,所以想写出不含try,except的程序非常困难。
参考资料来源:
百度百科-异常处理
关于java异常使用和Java中异常的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。