1、异常分类:运行时异常和非运行时异常,2中均直接或间接继承Exception类,运行时异常直接或间接继承RuntimeException类,非运行时异常不继承此类。
2、异常处理:2种。一种是throws Exception抛出给JVM处理,是被动处理。另一种使用try catch主动处理
3、自定义异常:自定义异常可以继承Exception类,实现自己的方法,本人的测试如下:
首先定义异常类MyException:
public class MyException extends Exception {
/**
*
*/
private static final long serialVersionUID = 1L;
//这里的throws MyException很重要,必须抛出,不然测试的时候无法捕获
public void getException(String msg) throws MyException{
System.out.println(msg);
}
public MyException() {
super();
}
public MyException(String message) {
super(message);
}
}
在定义测试类TestException:
public class TestException {
public static void main(String args[]) throws MyException{
TestException text = new TestException();
System.out.println(text.getExc());
}
public String getExc(){
try{
MyException e = new MyException();
e.getException("fdas");
return "Error";
}
catch(MyException exc){
System.out.println("非法的消息异常!");
}
finally{
System.out.println("hello");
}
return "OK";
}
}
运行结果为:
fdas
hello
Error
4、关于异常要注意的几点:
①当使用多个catch语句块来捕获异常时,需要将父类的catch语句块放到子类型的catch块之后,这样才能保证后续的catch可能被执行,否则子类型的catch将永远无法到达,Java编译器会报编译错误。
②如果try语句块中存在return语句,那么首先会执行finally语句块中的代码,然后才返回,比如上面的测试,是先打印hello,再打印Error就是这个原因。
③如果try语句块中存在System.exit(0)语句,那么久不会执行finally语句块的代码了,因为System.exit(0)会终止当前运行的JVM。程序在JVM终止前结束执行。
④自定义异常的某个方法必须抛出异常,否则在调用的时候会出现Unreachable catch block for MyException. This exception is never thrown from the try statement body错误,意思是没有抛出异常,自然无法捕获
分享到:
相关推荐
Java中的异常处理机制是一种用于捕获和处理程序运行过程中可能出现的异常情况的机制。当程序执行过程中出现异常时,异常处理机制允许我们捕获和处理这些异常,以便程序能够以一种可控的方式处理错误情况。 Java中的...
在Java中,异常处理是一种用于处理在程序执行期间可能出现的错误或异常条件的机制。这种机制允许程序员定义在特定错误或异常情况下应该如何执行代码。Java的异常处理机制主要包括try-catch-finally语句和throw语句。...
java异常练习题,北大青鸟学士后课后练习,主要是异常处理的小测验
深入理解java异常(异常中的Error+异常中的Exception+检查异常+运行时异常+异常处理+throws关键字等)
Java自定义异常处理详细介绍,包括了很多比较经典的案例,可以自己研究自定义异常
异常处理的一般格式,用法流程及关键字throw throws try catch finally exception等的使用
Java异常处理 声明异常 抛出异常 捕获异常 如何选择异常类型 常见异常处理方式 直接抛出异常 封装异常再抛出 捕获异常 自定义异常 try-catch-finally try-with-resource Java异常常见面试题 1. Error 和 Exception ...
如果java提供的系统异常类型不能满足程序设计的需求,那么可以设计自己的异常类型。 从java异常类的结构层次...另外一种问题是程序运行错误,java定义为Exception,这种情况下,可以通过程序设计调整来实现异常处理。
- 当代码执行过程中出现如除数为零的`ArithmeticException`等错误时,Java会立即转至相应的catch块进行异常处理,如输出错误信息并打印堆栈跟踪。 2. **finally块的使用**: - 不论try块中的代码是否抛出异常,...
1.熟悉异常处理原理和程序结构; 2.掌握异常处理程序设计技术并能正确应用。 二、实验内容 算术异常ArithmeticException(数组越界ArrayIndexOutOfBoundsException、字符串越界异常StringIndexOutOfBoundsException...
介绍Java程序中的异常概念,包括异常抛出、捕获和处理,自定义异常
Java异常处理的几个Example代码,让我们了解异常类型、声明异常、抛出和捕获异常、从异常获取信息、创建自定义异常等内容。
什么时间使用runtimeException,什么时间使用Exception,大家有没有被困扰到?经整理,JAVA异常处理框架,以及如何构造自己的异常体系,讲得比较详细,值得一看。
java编程异常处理,exception
第五章 异常处理5.1 错误处理的方法概述5.2 Java的异常处理机制5.3 创建自己的异常类异常的演示异常 (Exception):发生于程序执行期间,表明
常见java异常思维导图,异常:Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。
java异常处理
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8 at ch6.example.Example6_1.main(Example6_1.java:16) 《Java程序设计案例教程》教学课件07异常处理全文共31页,当前为第4页。...
在 Java 异常处理的过程中,你遵循的那些最好的实践是什么? 既然我们可以用 RuntimeException 来处理错误,那么你认 为为什么 Java 中还存在检查型异常? throw 和 throws 这两个关键字在 java 中有什么不同? ...