A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

A:异常注意事项
        * a:子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。(父亲坏了,儿子不能比父亲更坏)
        * b:如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常
        * c:如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,不能throws
* B:如何使用异常处理
        * 原则:如果该功能内部可以将问题处理,用try,如果处理不了,交由调用者处理,这是用throws
        * 区别:
                * 后续程序需要继续运行就try
                * 后续程序不需要继续运行就throws
               
        * 如果JDK没有提供对应的异常,需要自定义异常。
  1. package com.heima.test;

  2. import java.util.Comparator;
  3. import java.util.Scanner;
  4. import java.util.TreeSet;

  5. public class Test6 {

  6.         /**
  7.          * 程序启动后, 可以从键盘输入接收多个整数, 直到输入quit时结束输入. 把所有输入的整数倒序排列打印.
  8.          *
  9.          * 1,创建Scanner对象,键盘录入
  10.          * 2,创建TreeSet集合对象,TreeSet集合中传入比较器
  11.          * 3,无限循环不断接收整数,遇到quit退出,因为退出是quit,所以键盘录入的时候应该都以字符串的形式录入
  12.          * 4,判断是quit就退出,不是将其转换为Integer,并添加到集合中
  13.          * 5,遍历TreeSet集合并打印每一个元素
  14.          */
  15.         public static void main(String[] args) {
  16.                 //1,创建Scanner对象,键盘录入
  17.                 Scanner sc = new Scanner(System.in);
  18.                 //2,创建TreeSet集合对象,TreeSet集合中传入比较器
  19.                 TreeSet<Integer> ts = new TreeSet<>(new Comparator<Integer>() {

  20.                         @Override
  21.                         public int compare(Integer i1, Integer i2) {
  22.                                 //int num = i2 - i1;                                        //自动拆箱
  23.                                 int num = i2.compareTo(i1);
  24.                                 return num == 0 ? 1 : num;
  25.                         }
  26.                 });
  27.                 //3,无限循环不断接收整数,遇到quit退出,因为退出是quit,所以键盘录入的时候应该都以字符串的形式录入
  28.                 while(true) {
  29.                         String line = sc.nextLine();                                //将键盘录入的字符串存储在line中
  30.                         if("quit".equals(line)) {
  31.                                 break;
  32.                         }
  33.                         //4,判断是quit就退出,不是将其转换为Integer,并添加到集合中
  34.                         try {
  35.                                 Integer i = Integer.parseInt(line);
  36.                                 ts.add(i);                               
  37.                         } catch (Exception e) {
  38.                                 System.out.println("输入错误,请输入一个整数:");
  39.                         }
  40.                 }
  41.                
  42.                 // 5,遍历TreeSet集合并打印每一个元素
  43.                 for (Integer integer : ts) {
  44.                         System.out.println(integer);
  45.                 }
  46.         }

  47. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马