Java day11

什么是异常处理

  1. 异常是被调用方向调用方传递错误信息的一种途径, 当被调用方的方法在执行过程中出现了问题, 可以通过抛出异常对象, 让调用方捕捉从而实现错误信息的传递。
  2. 使用异常机制可以保证程序代码更加优雅,并提高程序健壮性。
  3. 被调用方抛出的异常对象能清晰的向调用方反应what, where, why这3个问题:

      异常类型反应了“什么”被抛出

      异常堆栈跟踪反应了“在哪”抛出

      异常信息反应了“为什么”会抛出

Java异常体系类图

Exception和Error的区别

Exception和Error同属于Throwable的直接子类, 是2个体系

Exception 体系的错误是可以在应用程序中进行捕获并处理的,通常遇到这种错误,应对其进行处理,使应用程序可以继续正常运行。

Error体系的错误通常为虚拟机相关错误,如系统崩溃,内存不足,堆栈溢出等,编译器不会对这类错误进行检测, 我们也不需要对这类错误进行捕获处理(因为你捕捉了也没用), 一旦这类错误发生, 应用程序会被终止。

Exception和RuntimeException的区别

RuntimeException是Exception的子类

Exception是受检的, 称为编译时异常

RuntimeException是不受检的, 称为运行时异常

PS: 这题的问法也可能是 "受检异常和不受检异常的区别是什么"

答: 受检异常指的是在编译时接受编译器的检查, 如果没有处理异常则不能通过编译, Exception类及其子类都属于受检异常, RuntimeException类

try-catch-finally语法中那一部分可以省略

try不可以省略

catch可以省略  

finally可以省略

catch和finally不可以同时省略

try-catch: try中发生的异常被catch捕捉, 程序可以继续往后运行

try-finally: try中发生的异常没有被程序捕捉, 程序会立即退出, 但退出之前会执行finally

try-catch-finally: try中发生异常, 异常代码后面的代码不会执行, 直接进入catch, try中没有发生异常, 不会进入catch, 无论是否发生异常, finally都会执行

一般会在finally 块中做什么

        

        在  try - catch - finally 与法中 , 无论执行 try 还是finally  还是 catch , 最终都会执行 finally , 所以我们一般把在try 中打开的资源放在 finally 中进行释放

try - catch - finally 中 , 如果catch 中return 了还会运行 finally 吗

        finally 会在return之前执行 , 但是finally 中无法改变返回值的结果

        可以理解为执行 retrun 的时候 ,先确定下了返回值 , 但方法还没有出栈 , 然后执行 finally , 如果finally 中改变了返回值的变量的值 , 也不会对最终返回值产生影响

常见的异常有哪些

        受检 : 接受编译器的检查

        

Error错误(不受检)Exception编译时异常(受检)RuntimeException运行时异常(不受检)
OutOfMemoryError内存溢出SQLException数据库异常NullPointerException空指针异常
StackOverflowError栈溢出ClassNotFoundException类找不到异常ClassCastException类型转换异常
IOException(IO流异常)ArithmeticException算术异常
FileNotFoundException文件找不到异常InputMismatchException输入不匹配异常
NumberFormatExcption数字转换异常

日期和时间

时间戳

1. 时间戳是一个Long类型的整数

2. 格林尼治时间 (GST) 1970.01.01  00:00:00  到当前这一刻的毫秒数

        中央标准时间 (CST) , 比格里尼治时间晚八个小时       

Date 日期类

SimpleDateFormat 日期格式转换类

构造方法的参数String pattern 嗲表日期格式 , 可以写成

格式符号日期单位
yyyy
MM

dd

HH
hh
mm
ss

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值