Java异常可以分为可检测异常,非检测异常
e.printStackTrace()
//异常最常用的方法,用于将当前错误信息输出到控制台
e.printStackTrace()
RuntimeException 类属于非检测异常
常见的RuntimeException子类
-
IllegalArgumentException:抛出的异常表明向方法传递了一个不合法或不正确的参数
-
NullPointerException:当应用程序试图在需要对象的地方使用 null 时,抛出该异常
-
ArrayIndexOutOfBoundsException:当使用的数组下标超出数组允许范围时,抛出该异常
-
ClassCastException:当试图将对象强制转换为不是实例的子类时,抛出该异常
-
NumberFormatException:当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换
为适当格式时,抛出该异常。
自定义异常
- 异常的类名要做到见名知义
- 需要是Exception的子类
- 提供超类异常提供的所有种类构造器
public class IllegalAgeException extends Exception{
public IllegalAgeException() {
}
public IllegalAgeException(String message) {
super(message);
}
public IllegalAgeException(String message, Throwable cause) {
super(message, cause);
}
public IllegalAgeException(Throwable cause) {
super(cause);
}
public IllegalAgeException(String message, Throwable cause, boolean
enableSuppression, boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace);
throw 手动抛出异常!
1.throws上报给方法调用者
2.try…catch捕捉,处理
3.finally一定会执行
常见异常
Java.io.NullPointerException
java.lang.NumberFormatException: For input string:"xxxxx“
java.lang.StringIndexOutOfBoundsException
java.io.InvalidClassException
java.io.NotSerializableException
java.io.UnsupportedEncodingException
java.io.FileNotFoundException
java.net.ConnectException: Connection refused:connect
java.net.BindException: Address already in use
java.net.SocketException: Connection reset
java.lang.InterruptedException
java.util.NoSuchElementException
java.util.ConcurrentModificationException
java.lang.UnsupportedOperationException
java.lang.IllegalArgumentException: wrong number of arguments
java.lang.ClassNotFoundException: xxxx(包名).XXXXX(类名)
java.lang.NoSuchMethodException
后期这些程序报错,可以用gpt来解决,他会告诉你哪里错误,是什么错误
记住,工具就是用来方便的,现在你用的程序还不是别人设置好的编程语言,最原始的高低电流,你会去学吗?