zoukankan      html  css  js  c++  java
  • 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 }

  • 相关阅读:
    Struts的ONGL
    深度解析 Qt 中动态链接库
    QTcpSocket 发送数据的几种方法
    QT GUI总结
    Qt 插件学习(一)
    Qt自定义窗口部件
    Qt事件机制浅析
    VS2008 Qt Designer 中自定义信号槽
    Q窗口操作函数(窗口最大化,全屏,隐藏最大化最小化按钮)
    QT中窗口刷新事件的学习总结
  • 原文地址:https://www.cnblogs.com/NiBosS/p/12079313.html
Copyright © 2011-2022 走看看