异常
异常指的是在程序运行过程中发生的异常事件,通常是由外部问题(如硬件错误、输入错误)所导致的。在Java等面向对象的编程语言中异常属于对象。
异常就是在程序的运行过程中所发 生的不正常的事件,如果不处理,它会中断正在运行的程序。如果处理,会发生个别代码不执行,但是程序可以继续。
Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws
Try-catch
Try{
有可能发生异常代码try中,如果try中代码发生异常,程序程序不会直接终止
--一段代码只能处理一个异常。,解决之后try中代码不执行,继续执行trycatch后的代码
}catch(捕获异常){---
捕获到异常之后进行异常处理——无论你处理或者不处理,只要捕获到就算解决了。
}catch(捕获异常){
捕获到异常之后进行异常处理——无论你处理或者不处理,只要捕获到就算解决了。
}catch(捕获异常){
捕获到异常之后进行异常处理——无论你处理或者不处理,只要捕获到就算解决了。
}finally{
最终代码:有没有异常最终都需要执行的代码
}
public class Student {
private String sex;
public String getSex() {
return sex;
}
// throws声明该方法抛出一个什么异常
public void setSex(String sex) throws Exception {
if(sex.equals("男")||sex.equals("女")){
this.sex = sex;
}else{
throw new Exception("输入的性别不对,请检查!!");//抛出异常
}
}
public static void main(String[] args) {
Student ss=new Student();
//调用声明了异常抛出的方法 ,必须将调用代码书写到try catch或者自己接着抛出
try {
ss.setSex("AAA");
} catch (Exception e) {
e.printStackTrace();//打印异常栈中的信息
System.out.println(e.getMessage());
}
System.out.println(ss.getSex());
异常和错误的区别:
Error类通常用以描述Java运行系统中的内部错误以及资源耗尽的错误等,一般是指JVM错误
Error类异常比较严重,仅靠修改程序本身不能恢复执行,被称为致命性异常。
Exception类被称为非致命性异常,可以通过捕获处理后正常运行 ,可以分为两种:RuntimeException异常和Runtime Exception之外的异常
RuntimeException异常又被称为运行时异常,即程序在运行阶段出现的异常;RuntimeException之外的异常又被称为编译时异常,即程序在编译阶段出现的异常
异常类说明
NullPointerException访问Null对象的方法
IllegalArgumentException接收非法参数
ClassNotFoundException不能加载所需要的类
ArithmeticException算术运算异常,如除数为零
ArrayIndexOutOfBoundsException数组小于或大于数组的长度
InputMisMatchException接收的数据类型与实际输入的类型不匹配
NumberFormatException格式化数据异常
IOException文件读写异常
日志
debug调试级别的⽇志
INFO - info 正常级别的⽇志
WARN - warn警告级别的⽇志
ERROR - error错误级别的⽇志
FATAL - fatal致命级别的⽇志
程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少
日期
LocalDateTime dateTime=LocalDateTime.now();
System.out.println(dateTime);
//将日期格式化成字符串:LocalDateTime的format方法 yyyy-MM-dd HH:mm:ss
DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy年MM月");
String ss=dateTime.format(formatter);
System.out.println(ss);
//将字符串解析成日期:LocalDateTime的parse方法进行解析
DateTimeFormatter formatter2=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String str="2020-11-11 12:12:12";
LocalDateTime tt= LocalDateTime.parse(str,formatter2);
System.out.println(tt);