愿景:"让编程不再难学,让技术与生活更加有趣"
更多架构课程请访问 xdclass.net
目录
第1集 Java异常Exception讲解
简介:介绍什么是异常,java出现异常的场景
-
什么是错误
-
程序运行时发生的不被期望的事件,阻止了程序按照预期正常执行
-
常见程序错误分三类
-
编译错误:新手最常见,没遵循语法规范
-
运行时错误:程序在执行时,
-
逻辑错误:程序没有按照预期的逻辑顺序执行
-
-
-
Java.lang软件包中有一个java.lang.Throwable类,这个类是java中所有错误和异常的超类,Throwable类有两个子类,Error与 Exception
-
Error
-
是Throwable 的子类,包含大量子类
-
出错后程序无法处理,如OutOfMemoryError
-
-
Exception
-
是Throwable 的子类,包含大量子类
-
程序本身可以处理的异常,如ArrayIndexOutOfBoundException
-
-
两大类
-
可查异常(编译器要求必须处置的异常):RuntimeException及其子类以外,其他的Exception类及其子类, 如 IOException和ClassNotFoundException
-
不可查异常(编译器不要求强制处置的异常): 包括运行时异常(RuntimeException与其子类)和错误(Error),如ArrayIndexOutOfBoundsException
-
-
-
第2集 Java内置异常体系分类和核心方法讲解
简介:讲解java内置的异常和Throwable核心方法介绍
-
java内置异常
-
可查异常(必须要在方法里面捕获或者抛出)
-
ClassNoFoundException 应用程序试图加载类,找不到对应的类
-
IllegalAccessException 拒绝访问一个类的时候
-
NoSuchFieldExcetion 请求的变量不存在
-
NoSuchMethodException 方法不存在
-
-
不可查异常
-
ArrayIndexOutOfBoundsException 数组索引越界
-
ClassCastException 强制失败抛出异常
-
NullPointerException 需要对象的地方使用 null 时,抛出该异常
-
NumberFormatException 将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常
-
-
-
Throwable类核心方法
-
public String getMessage()
-
异常的详细信息
-
-
public Throwable getCause()
-
异常原因
-
-
public void printStackTrace()
-
打印错误的堆栈信息,即错误输出流,可以看到错误原因和所在位置
-
-
public StackTraceElement [] getStackTrace()
-
堆栈层次的数组,下标为0的元素代表栈顶,最后一个元素代表方法调用堆栈的栈底
-
-
第3集 java进阶基础之Try Catch异常捕获
简介:讲解使用Try Catch进行异常捕获
-
异常处理之捕获
-
语法
try{ // 可能发生异常的代码 }catch(AExceptionName e){ //出异常的时候处理 }catch(BExceptionName e){ }fianall{ }
-
try后面跟一个或多个catch块,或一个finally块,或两者的组合
-
catch 不能独立于 try 而单独存在
-
如果代码没有对应的异常类进行捕获,则默认打印异常堆栈
-
-
课程代码演示
第4集 Java异常进阶之Finally讲解和多重捕获
简介:讲解finally和多重异常捕获
-
一个 try 代码块后面跟多个 catch 代码块的情况就叫多重捕获
-
语法
try{ // 可能发生异常的代码 }catch(ExceptionName1 e1){ //出异常的时候处理 }catch(ExceptionName2 e2){ //出异常的时候处理 }
-
代码中发生异常,异常被抛给第一个 catch 块, 如果不匹配则继续往下一个catch进行传递
-
-
finally关键字
-
用来创建在 try 代码块后面执行的代码块
-
finally 代码块中的代码总会被执行
-
一般用于资源回收释放等操作
-
语法:
try{ // 可能发生异常的代码 }catch(ExceptionName1 e1){ //出异常的时候处理 }finally{ //肯定执行的代码 } 或者 try{ // 可能发生异常的代码 }finally{ //肯定执行的代码 }
-
课程代码演示 面试题,返回结果最终是finally为准(尽量不要在finally里面使用return,会忽略try catch里面的return,容易造成未知的bug)
public static int divide(int num1, int num2){ try { int result = num1/num2; return result; }catch (Exception e){ System.out.println("出异常"); }finally { System.out.println("finally执行了"); return -2; } // return -1; }
-
-
-
三者的组合
-
try,catch和finally块有两种可能的组合:try-catch-finally或try-finally。
-
第5集 java异常处理之throws/throw关键词
简介: 讲解异常的抛出throw和声明throws
-
代码出异常常见的处理方法
-
try catch捕获
-
throws 声明异常 往外抛出
-
语法:throws子句放在方法参数列表的右括号之后,一个方法可以声明抛出多个异常,多个异常之间用逗号隔开。
-
例子
public class Main { public static void readChar() throws IOException,RemoteException { int input = System.in.read(); } }
-
-
-
try catch中捕获了异常,处理方法
-
当前捕获自己处理
-
捕获自己处理然后继续往外面抛异常
-
语法
throw new ExceptionName("异常信息");
-
例子
throw new IOException("File not found");
-
-
-
总结:当抛出一个被检查的异常,我们必须使用try-catch块来处理它,或者在方法声明中使用throws子句继续往外抛
第6集 java进阶基础之自定义异常
简介:讲解使用java进行自定义异常
-
为什么要使用自定义异常
-
当前JDK内置的异常不满足需求,项目会出现特有异常
-
自定义异常可以让业务更清晰
-
-
如何进行自定义异常
-
异常都是继承自Exception类,所以我们要自定义的异常也需要继承这个基类。
-
-
例子
public class BaseException extends Exception {
private String errorMessage;
private String errorCode;
public BaseException(String errorCode,String errorMessage){
super(errorMessage);
this.errorCode = errorCode;
this.errorMessage = errorMessage;
}
public String getErrorMessage() {
return errorMessage;
}
public String getErrorCode() {
return errorCode;
}
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
}
干货文档
关注公众号发送:“CSDN干货文档” 即可领取