10Java语法回顾之异常处理
来源:互联网 发布:招募淘宝分销商的语句 编辑:程序博客网 时间:2024/05/17 13:39
Java语法回顾之异常处理
读了那么多年的书让我明白一个道理。人要稳重,不要想到啥就做啥。做一行越久即使你不会,几年之后慢慢的你也会了,加上一点努力你或许你能成为别人眼中的专家。
异常处理的格式代码
/* * 基本格式: * try{ * 可能有问题的代码 * }catch(异常类名 变量名){ * 处理方案。变量名.printStackTrace(); * }finally{ * 释放资源。(数据库,IO) * } * * finally:里面代码永远会执行。 */
异常处理的代码测试
public class ExceptionDemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入被除数:"); int a = sc.nextInt(); System.out.println("请输入除数:"); int b = sc.nextInt(); try { int c = a / b; System.out.println(c); } catch (ArithmeticException ae) { // 继续操作 // 返回一个错误页面 System.out.println("除数不能为0"); } System.out.println("新年快乐"); }}
一个代码多个异常怎么解决代码测试
/* * 一个代码中,有多个问题,怎么解决呢? * A:一个个用异常处理方案解决。 * B:针对所有问题,写一个try...catch代码。 * try{}catch(){}catch(){}... * 注意:在异常处理中,一旦try里面有问题了。就直接跳到catch里面执行。 */ CODE public class ExceptionDemo2 { public static void main(String[] args) { // method1(); method2(); } public static void method2() { try { // ArithmeticException int a = 10; // int b = 0; int b = 2; System.out.println(a / b); // ArrayIndexOutOfBoundsException int[] arr = { 1, 2, 3 }; System.out.println(arr[3]); // 继续操作 System.out.println("over"); } catch (ArithmeticException ae) { System.out.println("除数不能为0"); } catch (ArrayIndexOutOfBoundsException ae) { System.out.println("数组越界异常"); } }}
try……catch多个异常的顺序问题
/* * 注意:异常或者错误,都是以他们所在体系的父亲作为后缀。 * XxxException * XxxError * *针对多个异常,写一个try的代码,catch里面会不会有顺序问题呢? *如果异常是平级关系,没有顺序问题。 *如果异常存在着子父关系,父一定要放在最后。 */
try……catch异常JDK7新特性
/* * JDK7新特性:多个catch用一个catch替代。 不是说多个catch的内容,用一个Exception处理。 * 格式: * catch(异常1 | 异常2 | 异常3 ... 变量名){} */
Throwable异常处理方法
/* * Throwable中的方法: * public String getMessage():返回的是异常的消息字符串。 * public String toString():返回异常的简单描述信息。 * 全路径类名 : 消息字符串 * public void printStackTrace():把错误信息显示在控制台。 */
Throwable异常处理方法代码测试
public class ExceptionDemo { public static void main(String[] args) { int a = 10; int b = 0; try { System.out.println(a / b); // 一旦发生问题,在这里其实就产生了一个ArithmeticException对象。 // 然后,拿着这个对象,去和catch里面的类型进行匹配。如果有,就赋值。 // new ArithmeticException() } catch (ArithmeticException ae) { // ArithmeticException ae = new // ArithmeticException(); // System.out.println("除数不能为零"); // 通过分析,那么,ae是一个对象了 // / by zero // System.out.println(ae.getMessage()); // java.lang.ArithmeticException: / by zero // System.out.println(ae.toString()); // 实际开发中,会获取到异常后,自动判断是某种异常,然后一个错误信息处理界面。 System.out.println(ae.getMessage()); System.out.println(ae); ae.printStackTrace(); }}
抛出异常throws
/* * 把异常抛出,方法调用中常见。 * 怎么抛出呢? * 格式: * 在方法名称后面跟一个关键字:throws 异常类名 * * 异常的分类: * A:Exception下非RuntimeException 编译时异常 * B:RuntimeException 运行时异常 * * 异常处理: * A:try...catch...finally * B:throws * 请问我们选择谁? * 如果能够处理,尽量选择A。否则选择B。 * * 运行时期异常和编译时期异常的区别? * A:运行时期异常 * 是不需要try...catch或者throws的。 * B:编译时期异常 * 编译时期异常是需要进行处理的。 * */
抛出异常throws代码测试
public class ExceptionDemo { public static void main(String[] args) throws FileNotFoundException { try { method(); } catch (Exception e) { e.printStackTrace(); } // method(); System.out.println("over"); FileInputStream fis = new FileInputStream("a.txt"); // try { // FileInputStream fis = new FileInputStream("a.txt"); // } catch (FileNotFoundException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } } // 告诉你,我这个方法可能有问题。请你注意。 private static void method1() throws ArithmeticException { int a = 10; int b = 0; // try { // System.out.println(a / b); // } catch (ArithmeticException ae) { // ae.printStackTrace(); // } System.out.println(a / b); } // 抛出运行时期异常 private static void method2() throws RuntimeException { int a = 10; int b = 0; System.out.println(a / b); } // 抛出编译时异常 private static void method() throws Exception { int a = 10; int b = 0; System.out.println(a / b); }}
自定义异常类
/* * java虽然已经考虑到了很多种异常情况,但是,有些需求java程序是考虑不到的。比如说:我要求学生的分数不能为负数。 * 那么,针对这种情况,我们就要编写自定义异常类进行处理。 * 如何编写一个自定义异常类呢? * 就是自定义一个类,去继承Exception或者RuntimeException。 * 开发中:一般继承自RuntimeException。 * 我先讲Exception。 */
自定义异常类代码测试
//1 写一个类集成Exceptionpublic class MyException extends Exception { public MyException(String message) { super(message); }}// 2 教师类调用这个自定义的测试类,并把异常抛出去了public class Teacher { public void checkScore(int score) throws MyException { if (score < 0 || score > 100) { // System.out.println("分数错误"); MyException my = new MyException("分数不在指定范围内"); throw my; } else { System.out.println("分数正确"); } }}// 3 test类中调用教师类中的方法,并捕获异常public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入学生成绩:"); int score = sc.nextInt(); Teacher t = new Teacher(); try { t.checkScore(score); } catch (MyException e) { System.out.println(e.getMessage()); // e.printStackTrace(); } // t.checkScore(score); }}
0 0
- 10Java语法回顾之异常处理
- Java异常处理回顾:使用finally块
- java语法_2:异常处理
- 05Java语法回顾_collection之arraylist
- 07Java语法回顾collection之linklist
- 11Java语法回顾之io流
- 12Java语法回顾之递归
- 13Java语法回顾之filewriter&&filereader
- 18Java语法回顾之网络编程
- 19Java语法回顾之反射
- 20Java语法回顾之设计模式
- Ogre异常处理回顾
- JAVA异常之异常处理
- java之异常处理
- java之异常处理
- java 之 ----------------- 异常 处理
- java之异常处理
- java之------ 异常处理
- 黑马程序员_装饰设计模式
- 利用word2vec和神经网络构造文章地域分类器(一)
- Unity2S 愤怒的小鸟教程
- 琐碎知识点...
- Android--闹钟小案例
- 10Java语法回顾之异常处理
- java正则表达式解析html示例分享
- A good iOS developer is also a good designer
- Swift2.1 枚举转换类型
- Android拨打电话代码
- Scikit-learn Algorithm Cheat Sheet
- 120_区间埃氏筛
- 获取坐标值的各种方法(图解) - 记录
- n2n vpn搭建