异常:会导致程序中断。
以前我们见过的:
编译报错:无法运行
运行报错:可执行一部分,但遇到有问题的代码,会中断
数组越界
类型转换
输入不匹配
空指针
解决异常情况一般有以下几种处理办法:
1选择另一种方式处理该异常。
2提前预处理某些可能要发生的问题、避免异常发生
3不处理
异常处理:
try-catch-finally:
try块包裹可能发生异常的代码
catch(可能的异常类型 参数){发生异常执行的代码}
finally{需要一定执行的代码,一般是关闭某些长期占用的资源}
常见的异常类型:
异常类型
说明
Exception
异常层次结构的父类
ArithmeticException
算术错误情形,如以零作除数
ArrayIndexOutOfBoundsException
数组下标越界
NullPointerException
尝试访问 null 对象成员
ClassNotFoundException
不能加载所需的类
IllegalArgumentException
方法接收到非法参数
ClassCastException
对象强制类型转换出错
NumberFormatException
数字格式转换异常,如把"abc"转换成数字
throws:位置在方法的小括号和方法的大括号之间
用于声明这个方法可能有什么异常,多个异常用逗号隔开,并交给下一个调用者处理或者调用者继续声明异常。
main()方法声明的异常由Java虚拟机处理
throw:位置在方法体的内部
用于警告使用方法或 异常结束,往往是自定义情况。
异常:会导致程序中断。
以前我们见过的:
编译报错:无法运行
运行报错:可执行一部分,但遇到有问题的代码,会中断
数组越界
类型转换
输入不匹配
空指针
解决异常情况一般有以下几种处理办法:
1选择另一种方式处理该异常。
2提前预处理某些可能要发生的问题、避免异常发生
3不处理
异常处理:
try-catch-finally:
try块包裹可能发生异常的代码
catch(可能的异常类型 参数){发生异常执行的代码}
finally{需要一定执行的代码,一般是关闭某些长期占用的资源}
常见的异常类型:
异常类型
说明
Exception
异常层次结构的父类
ArithmeticException
算术错误情形,如以零作除数
ArrayIndexOutOfBoundsException
数组下标越界
NullPointerException
尝试访问 null 对象成员
ClassNotFoundException
不能加载所需的类
IllegalArgumentException
方法接收到非法参数
ClassCastException
对象强制类型转换出错
NumberFormatException
数字格式转换异常,如把"abc"转换成数字
throws:位置在方法的小括号和方法的大括号之间
用于声明这个方法可能有什么异常,多个异常用逗号隔开,并交给下一个调用者处理或者调用者继续声明异常。
main()方法声明的异常由Java虚拟机处理
throw:位置在方法体的内部
用于警告使用方法或 异常结束,往往是自定义情况。