• 32.Java基础_异常


    JVM虚拟机默认异常处理机制

    Java异常处理:

    1.try...catch...

    2.throw

    1.try...catch...

     1 public class test{
     2     public static void main(String[] args) {
     3         System.out.println("开始");
     4         method();
     5         System.out.println("结束");
     6     }
     7     public static void method(){
     8         int[] arr={1,2,3};
     9         try {
    10             System.out.println(arr[3]); //访问超出索引
    11         }
    12         catch (ArrayIndexOutOfBoundsException e){
    13             e.printStackTrace();
    14         }
    15     }
    16 }
    17 /*
    18 开始
    19 java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
    20     at pack2.test.method(test.java:13)
    21     at pack2.test.main(test.java:7)
    22 结束
    23  */

    Exception异常类常用方法

    编译时异常和运行时异常

    2.throws

    throws将异常抛出去,让try_catch_来处理

     1 import java.text.ParseException;
     2 import java.text.SimpleDateFormat;
     3 import java.util.Date;
     4 public class test{
     5     public static void main(String[] args) {
     6         System.out.println("开始");
     7         try {
     8             method();
     9         }
    10         catch (ArrayIndexOutOfBoundsException e){
    11             e.printStackTrace();
    12         }
    13         try {
    14             method2();
    15         }
    16         catch (ParseException e){
    17             e.printStackTrace();
    18         }
    19         System.out.println("结束");
    20     }
    21     //编译时异常,不加throws ParseException不能编译
    22     public static void method2() throws ParseException {
    23         String s="2048-08-09";
    24         SimpleDateFormat sdf=new SimpleDateFormat("yyy-MM-dd");
    25         Date d=sdf.parse(s);
    26         System.out.println(d);
    27     }
    28     //运行时异常,不加throws ArrayIndexOutOfBoundsException可以编译
    29     public static void method() throws ArrayIndexOutOfBoundsException{
    30         int[] arr={1,2,3};
    31         System.out.println(arr[3]);
    32     }
    33 }
    34 /*
    35 开始
    36 java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
    37     at pack2.test.method(test.java:36)
    38     at pack2.test.main(test.java:13)
    39 Sun Aug 09 00:00:00 CST 2048
    40 结束
    41  */

    自定义异常

     1 public class ScoreException extends Exception{
     2     public ScoreException() {}
     3     public ScoreException(String message) {
     4         super(message);
     5     }
     6 }
     7 
     8 public class Teacher{
     9     public void checkScore(int score) throws ScoreException{
    10         if(score<0||score>100){
    11             throw new ScoreException(); //抛出异常对象
    12         }
    13         else {
    14             System.out.println("分数正常");
    15         }
    16     }
    17 }
    18 
    19 import java.util.Scanner;
    20 public class test{
    21     public static void main(String[] args) {
    22         Scanner sc=new Scanner(System.in);
    23         System.out.println("请输入分数:");
    24         int score=sc.nextInt();
    25         Teacher t=new Teacher();
    26         try {
    27             t.checkScore(score);
    28         }
    29         catch (ScoreException e){
    30             e.printStackTrace();
    31         }
    32     }
    33 }

  • 相关阅读:
    【转】QPainter中坐标系变换问题
    【转】Python3 (入门6) 库的打包与安装
    【转】Python3 操作符重载方法
    【转】Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历))
    正则表达式过滤HTML、JS、CSS
    JavaScript的类型转换
    JavaScript的数据类型,值和变量
    JavaScript介绍
    Ant学习笔记
    GeoServer端口配置
  • 原文地址:https://www.cnblogs.com/NiBosS/p/12079313.html
Copyright © 2020-2023  润新知