- Throwable:(1)Error:应用程序不应该去捕获的异常情况;(2)Exception:应用程序可以捕获的异常。出现异常之后的语句无法执行
- RuntimeException:在程序正常运行期间抛出的,不需要提前做任何处理。
- 编译时期异常(ParseException)处理方法:(1)Add throws declaration。throws关键字:用于方法的参数列表后,方法名() throws 异常类型{ 方法体(可能抛出异常) } 。使用throws关键字,是将异常向上抛出,抛给上一级调用者处理,如果此时抛出的异常是一个编译时期异常,上一级也只有两种选择:继续向上抛/使用try/catch处理掉。(2)surround with try catch
- try{ 可能抛出异常的语句;}catch(异常的类型(Exception) e){如果抛出异常执行的语句}。
- try catch后面的语句可以执行。catch异常的参数类型必须是可能抛出的异常类自己或其父类。
- e.printStackTrace() 打印堆栈跟踪;e.getMessage()返回异常对象的信息;e.toString() 返回Throwable的简短描述;
- 多个异常捕获的情况: try{ } catch(异常类型1 e){ } catch(异常类型2 e){ }。(1)异常类型1不能是异常类型2的父类;(2)如果在try语句块中出现了异常,那么后面的语句将不再执行。
- try { } catch(异常类型1 | 异常类型2 e){ } 。在参数括号中的异常类型是平级情况,不能出现继承关系。
- SimpleDateFormat:SimpleDateFormat date=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//构造方法
- Date类型转成String类型:format(Date date),输出一个按照指定模式的日期的字符串。
- String类型转成Date类型(编译时期异常处理)
-
package com.mcq; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateDemo { public static void main(String[] args) throws ParseException {//第一种 SimpleDateFormat date=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//构造方法 Date time=new Date(); String formatStr=date.format(time); System.out.println(formatStr); System.out.println(time); String s="2019年2月18日16点0分0秒"; SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM月dd日HH点mm分ss秒"); Date d=null; //第二种 try { // d = simpleDateFormat.parse(s); // } catch (ParseException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } d = simpleDateFormat.parse(s); System.out.println(d); } } /* 2019/02/22 17:01:40 Fri Feb 22 17:01:40 CST 2019 Mon Feb 18 16:00:00 CST 2019 */
- try catch快捷方法:选中代码右键Surround with try catch
- throw关键字 用于手动抛出异常对象:throw new 异常(); 如果抛出的异常是一个RuntimeException,可处理可不处理。可以在创建异常的时候,通过有参构造方法传入异常信息。
- throw和throws的区别:(1)throws用在方法声明后面,跟的是异常类名;throw用在方法体内,跟的是异常对象名。(2)throws可以跟多个异常类名,用逗号隔开;throw只能抛出一个异常对象名。(3)throws表示抛出异常,由该方法的调用者处理;throw表示抛出异常,由方法体内的语句处理。(4)throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常。
- finally:try { }catch(Exception e){ }finally{这里的语句一定会被执行 }
- 自定义异常:(1)继承异常父类;(2)重写构造方法,传入一个字符串参数,调用super(message);
//ScoreException.java package com.mcq; public class ScoreException extends RuntimeException { public ScoreException(String message) { super(message); } } //ScoreDemo.java package com.mcq; import java.util.Scanner; public class ScoreDemo { public static void main(String[] args) { System.out.println("请输入你的成绩,如果成绩太差,就会报异常"); Scanner in=new Scanner(System.in); int score =in.nextInt(); if(score<60){ throw new ScoreException("你的成绩已经低于一般水平了,请好好学习!"); }else { System.out.println("score="+score); } } }
java学习笔记之异常、Date类
最新推荐文章于 2022-12-26 23:09:44 发布