极速快3公式_Java匹马行天下之JavaSE核心技术——异常处理

  • 时间:
  • 浏览:1
  • 来源:冰帝网络 - 专注共享筱凯博客资讯

异常的简介

在Java中,异常好多好多 Java在编译、运行或运行过程中老要跳出的错误。

多多tcp连接 错误分为四种 :编译错误运行时错误逻辑错误

  • 编译错误是之后 多多tcp连接 如此遵循语法规则,编译多多tcp连接 不利于买车人发现之后 提示亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 错误的原因分析 和位置,四种 也是新手在刚接触编程语言时老要遇到的问題。
  • 运行时错误是之后 多多tcp连接 在执行时,运行环境发现了不到执行的操作。
  • 逻辑错误是之后 多多tcp连接 如此按照预期的逻辑顺序执行。异常也好多好多 指多多tcp连接 运行时位于错误,而异常正确处理好多好多 对那些错误进行正确处理和控制。

下面看一段代码

package com.yichang;

public class Test {
    public static void main(String[] args) {
        System.out.println(1/0);//0不到做除数
    }
}

运行后的结果为

亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 发现多多tcp连接 出了错,而图中的错误信息他不知道们一个信息:

  • 出了那些错
  • 出错的位置

异常产生的过程

以里面的代码为例,多多tcp连接 在运行过程中,先运行main措施,之后 执行到1/0时,多多tcp连接 就会报错,多多tcp连接 先会创建一个错误对象,之后 把四种 错误对象丢出来,亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 都知道亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 的多多tcp连接 是运行在Java虚拟机(JVM)上,多多tcp连接 丢出来的错误对象就会被JVM捕获到。当然,JVM捕获到错误对象后,它也他不知道该为什么我么我办,它不之后 帮你调错,JVM会把错误信息之后 你打印出来。

总结一下,好多好多 :

  • 上例中老要跳出的异常是运行时异常(异常是错误)
  • 多多tcp连接 会创建一个错误对象,之后 把错误对象丢出来(抛异常)
  • 默认由JVM把错误信息进行捕获,打印出来(捕获异常)

为那些不到直接让JVM获取异常

先看下面代码

package com.yichang;

public class Test {
    public static void main(String[] args) {
        System.out.println(1/0);//0不到做除数

        System.out.println("你好");
    }
}

运行结果为

从里面代码和运行结果中,亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 比较慢看出在控制台如此打印出你好。老要跳出四种 情况报告,是之后 在JVM捕获到异常后,多多tcp连接 会终止。换句话说,在由JVM来正确处理错误的完后 ,此时,多多tcp连接 会终止,之后 异常完后 的代码就无法运行了。亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 可不前要根据生活实例想想,那些完后 百度会之后 搜不到东西停服务,肯定是不必的,之后 亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 里面要做的好多好多 如保在异常到达JVM完后 把异常拦下来,买车人单独正确处理,就不必麻烦JVM了。

异常的分类

在里面实例中他说太久多tcp连接 会创建错误对象,说到对象,亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 都知道对象是由创建的,那异常对象肯定是通过异常类来创建的。下面图中好多好多 Java给亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 提供的异常类:

从图中亲戚亲戚.之后 你看出Throwable是所有异常的根,所有的异常类都继承自Throwable,就像面向对象里面所有的类都继承自Object

下面我来说一下异常的分类

  • RuntimeException:运行时异常,一般不手动正确处理,出问題了再正确处理。
  • 其他Exception:前要要经过手动正确处理。
  • Error:一般指的是系统级错误。

我再用生活例子解释一下这四种 异常,便于新手理解: 假设亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 现在开车上山

  • 开车的过程中发现山上有其他小石头,但亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 不之后 把所有小石头都正确处理了,这完后 亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 依旧正常开,那些完后 小石头把车胎给弄坏了,亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 再下来,换备胎,这好多好多 运行时异常
  • 开车的过程中发现前面一个很大的石头挡住了路,这完后 你前要下车先把这石头挪走,你不利于继续上山,这也好多好多 其他Exception
  • 开车上山的过程中山塌陷了,你又无法正确处理,前要要等到山好了你不利于继续出发,也好多好多 Error,好多好多 四种 错误亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 一般的多多tcp连接 员是正确处理不了的。

异常的正确处理措施

try···catch正确处理

语法

try{
    //尝试执行的代码
        }catch(Exception e){

    //正确处理异常的代码
        }finally{

    //最终的
        }

下面我将文中案例进行改造

package com.yichang;

public class Test {
    public static void main(String[] args) {
        try {
            System.out.println(1/0);//0不到做除数
        }catch (Exception e){
            e.printStackTrace();//打印错误信息,给多多tcp连接


员看的
            System.out.println("系统老要跳出错误,请联系管理员");//给客户看的
        }finally {

            //一般做收尾工作
            System.out.println("你好");
        }

    }
}

运行结果为

  • try-- 用于监听。将要被监听的代码(之后 抛出异常的代码)装进try话语块之内,当try话语块内位于异常时,异常就被抛出。
  • catch-- 用于捕获异常。catch用来捕获try话语块中位于的异常。
  • finally-- finally话语块老要会被执行。它主要用于回收在try块里打开的物力资源(如数据库连接、网络连接和磁盘文件)。

throws和throw正确处理

  • throws表示措施准备要扔出来一个异常
  • throw表示向外抛出异常

举例说明

package com.yichang;

public class Test1 {

    public static void chu(int a,int b) throws Exception{
        if (b==0){
            throw new Exception("除数不到为0");
        }else {
            System.out.println(a/b);
        }
    }

    public static void main(String[] args) throws Exception{

        chu(1,0);
    }
}

运行结果

以上这四种 措施还会 正确处理异常的,之后 四种 异常之后 你正确处理,就用try···catch措施捕获并正确处理异常,之后 四种 异常你不到正确处理,就用throws措施抛出异常,但作为多多tcp连接 员的亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 要始终记住话语:产生的错误尽之后 的买车人正确处理,少向外抛出异常

自定义异常

到这之后 有的亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 要问了,为那些要自定义异常,Java给的如此多还不足英文用吗?我你会告诉你,当然不足英文用,比如在生活中,亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 都知道外面的澡堂子里面是分男女澡堂的,之后 有男顾客走进了女澡堂或有女顾客走进了男澡堂,就坏事了,这与否一个大异常吧,那亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 想,jdk会给亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 提供跟性别还有澡堂子有关的异常吗?肯定是不之后 的,那些时就前要亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 自定义异常。我以澡堂子为例,写一个多tcp连接 ,供亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 参考。

自定义异常:直接继承Exception之后 RuntimeException来是实现自定义异常

Person类

package com.yichang;

public class Person {
    String name;//姓名
    String gender;//性别

    public Person(String name, String gender) {
        this.name = name;
        this.gender = gender;
    }
}

ZaoTangZi类

package com.yichang;

public class ZaoTangZi {
    public void man(Person p) throws GenderException{
        if (p.gender=="男"){
            System.out.println("欢迎光临");
        }else {
            //前要抛出一个异常
            throw new GenderException("性别错误,这里是男澡堂子");
        }
    }
}

GenderException类

package com.yichang;

public class GenderException extends Exception{
    //买车人定义的异常前要要继承Exception或RuntimeException

    public GenderException(String msg){
        super(msg);//调用父类的构造措施,Exception(msg)
    }
}

Test类

package com.yichang;

public class Test {
    public static void main(String[] args) throws GenderException{
        Person p1 = new Person("张三","男");
        Person p2 = new Person("小花","女");

        ZaoTangZi z = new ZaoTangZi();
        z.man(p2);
    }
}

运行结果:

总结

写到这,这篇异常正确处理的文章就写完了,看完后 亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 应该明白以下好多个问題:

  • 那些是异常
  • 老要跳出异常如保正确处理
  • 如保自定义异常

之后 写的不得劲啰嗦了,但对新手是友好的,还请亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 多多包涵,希望能对亲戚亲戚我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 我们歌词 有所帮助。