百度竞价网站怎么做,wordpress首页乱码,石家庄网站制作,微信公众号前端开发10 异常
10.1异常介绍及分类
异常捕获 选中后alttabt-选中try-catch
异常就是程序执行中不正常的情况 注意语法和逻辑错误并不是异常
异常分类有两种 error和exception error是错误 虚拟机无法解决的严重问题 exception是其他因为编程错误或者外在因素导致的一般性的问…10 异常
10.1异常介绍及分类
异常捕获 选中后alttabt-选中try-catch
异常就是程序执行中不正常的情况 注意语法和逻辑错误并不是异常
异常分类有两种 error和exception error是错误 虚拟机无法解决的严重问题 exception是其他因为编程错误或者外在因素导致的一般性的问题 exception又分为两大类 运行时异常 编译时异常 前者指程序运行时发生的异常 后者指编译器检查出的异常 顾名思义 非受检异常就是在编译时不需要强制处理的异常 所以也叫运行时异常 受检异常就是编译时异常
10.2 运行时异常
运行时异常是程序员应该避免的 包括 10.3 编译时异常 10.4 异常处理方式 理解可以看到 如果有try-catch-finally 捕获到异常可以处理 但如果没有 就要将该异常throws到调用它的方法 进行处理 直到有对应的处理异常的地方 如果一直没有 就会将该异常throws到JVM进行处理
10.5 try-catch-finally import java.util.Scanner;class test{public static void main(String[] args) {Scanner innew Scanner(System.in);String namein.next();try {int numInteger.parseInt(name);}catch (Exception e){e.printStackTrace();}finally {System.out.println(finally一定执行);}}
}多个catch语句 import java.lang.Object;
import java.util.Scanner;class test{public static void main(String[] args) {Scanner innew Scanner(System.in);String namein.next();int numin.nextInt();try {int nInteger.parseInt(name);Father fathernew Father();father.fly();int i1/num;}catch(NullPointerException e){e.printStackTrace();}catch (NumberFormatException e){e.printStackTrace();}catch(ArithmeticException e){e.printStackTrace();}catch(Exception e){e.printStackTrace();}finally {System.out.println(finally一定执行);}}
}class Father{void fly(){System.out.println(father flying);}void swim(){System.out.println(father swimming);}
}class Son extends Father{Deprecated void fly(){System.out.println(son flying);}Override void swim(){System.out.println(son swimming);}
}class Daughter extends Father{}try-finally相当于没有捕获异常 所以如果出现异常程序会直接崩掉
题目 先执行try 数组越界异常 进入对应catch块 执行语句return不执行 最后进入finally块 执行语句return执行 所以返回4
总结finally对返回值的影响看finally中有没有返回值 总结 10.6 throws 10.7 自定义异常 package com.hspedu.customexception_; public class CustomException { public static void main(String[] args) /*throws AgeException*/ { int age 180; //要求范围在 18 – 120 之间否则抛出一个自定义异常 if(!(age 18 age 120)) { //这里我们可以通过构造器设置信息 throw new AgeException(年龄需要在 18~120 之间); } System.out.println(你的年龄范围正确.); } } //自定义一个异常 //1. 一般情况下我们自定义异常是继承 RuntimeException //2. 即把自定义异常做成 运行时异常好处时我们可以使用默认的处理机制 //3. 即比较方便 class AgeException extends RuntimeException { public AgeException(String message) {//构造器 super(message); } }