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异常处理的主要内容,如果未能解决你的问题,请参考以下文章

大一Java异常处理问题

Java中的异常处理机制的简单原理和应用。

java中的异常处理的基本结构

java异常处理有关的问题...急

JAVA中的异常处理机制的原理

java中 方法中抛出异常处理方法