黑马程序员技术交流社区
标题:
异常的注意事项及如何使用异常处理
[打印本页]
作者:
Zhouyongming
时间:
2016-4-2 18:54
标题:
异常的注意事项及如何使用异常处理
A:异常注意事项
* a:子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。(父亲坏了,儿子不能比父亲更坏)
* b:如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常
* c:如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,不能throws
* B:如何使用异常处理
* 原则:如果该功能内部可以将问题处理,用try,如果处理不了,交由调用者处理,这是用throws
* 区别:
* 后续程序需要继续运行就try
* 后续程序不需要继续运行就throws
* 如果JDK没有提供对应的异常,需要自定义异常。
package com.heima.test;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
public class Test6 {
/**
* 程序启动后, 可以从键盘输入接收多个整数, 直到输入quit时结束输入. 把所有输入的整数倒序排列打印.
*
* 1,创建Scanner对象,键盘录入
* 2,创建TreeSet集合对象,TreeSet集合中传入比较器
* 3,无限循环不断接收整数,遇到quit退出,因为退出是quit,所以键盘录入的时候应该都以字符串的形式录入
* 4,判断是quit就退出,不是将其转换为Integer,并添加到集合中
* 5,遍历TreeSet集合并打印每一个元素
*/
public static void main(String[] args) {
//1,创建Scanner对象,键盘录入
Scanner sc = new Scanner(System.in);
//2,创建TreeSet集合对象,TreeSet集合中传入比较器
TreeSet<Integer> ts = new TreeSet<>(new Comparator<Integer>() {
@Override
public int compare(Integer i1, Integer i2) {
//int num = i2 - i1; //自动拆箱
int num = i2.compareTo(i1);
return num == 0 ? 1 : num;
}
});
//3,无限循环不断接收整数,遇到quit退出,因为退出是quit,所以键盘录入的时候应该都以字符串的形式录入
while(true) {
String line = sc.nextLine(); //将键盘录入的字符串存储在line中
if("quit".equals(line)) {
break;
}
//4,判断是quit就退出,不是将其转换为Integer,并添加到集合中
try {
Integer i = Integer.parseInt(line);
ts.add(i);
} catch (Exception e) {
System.out.println("输入错误,请输入一个整数:");
}
}
// 5,遍历TreeSet集合并打印每一个元素
for (Integer integer : ts) {
System.out.println(integer);
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2