java异常处理
Posted syhxx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java异常处理相关的知识,希望对你有一定的参考价值。
Java 异常处理
异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。
比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.ArithmeticException 的异常。
异常发生的原因有很多,通常包含以下几大类:
- 用户输入了非法数据。
- 要打开的文件不存在。
- 网络通信时连接中断,或者JVM内存溢出。
这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。-
要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:
- 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
- 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
- 错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。
Java中的异常处理机制的简单原理和应用。
Java中的异常处理机制的简单原理和应用 :
java中Throwable这个类可以被作为异常抛出的类,继承它的分为异常Exception和错误Error.
Exception表示程序需要捕捉和处理的的异常;
Error表示系统级别的错误和程序无需处理的。
我们所需要关心的是Exception. Execption可以分为java标准定义的异常和程序员自定义异常2种.
(1)一种是当程序违反了java语规则的时候,JAVA虚拟机就会将发生的错误表示为一个异常.这里语法规则指的是JAVA类库内置的语义检查。
(2)另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是Thowable的子类。
异常处理是与程序执行是并行的.
Try
//可能发现异常的语句块
catch(异常类型,e)
//发生异常时候的执行语句块
finnally
//不管是否发生异常都执行的语句块
以下是一个自定义异常测试类:
package code;class MyException extends Exception
public void f()
System.out.println("this is my Exception!!");
public class ExceptionTestTwo
private int i = 0;
private int j;
ExceptionTestTwo(int x) throws MyException
f2();
j = x / i;
public void f2() throws MyException
System.out.println("this is My first Exception!!");
throw new MyException();
public static void main(String[] args)
try
new ExceptionTestTwo(9);
catch (MyException e2)
e2.f();
catch (Exception e)
e.printStackTrace();
finally
System.out.println("Finally is first Exception!!");
try
throw new MyException();
catch (MyException e1)
e1.f();
finally
System.out.println("Finally is second Exception!!");
参考技术A java的Exception需要你对一些存在的问题进行事先的规划,并对相应的Exception的情况进行设定,当程序捕获类似的情况就会抛出异常,你可以定义异常的处理方法。异常并不是致命的,它与错误有着区别,错误只要发生程序就会终止,但是异常会继续执行下去。 参考技术B 比如你写一个计算器,如果用户执行除以0运算,就会报异常 参考技术C 当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。
本回答被提问者和网友采纳
以上是关于java异常处理的主要内容,如果未能解决你的问题,请参考以下文章