这是我参与2022首次更文挑战的第4天,活动详情查看:2022首次更文挑战
Java程序设计 异常
异常的概念
异常可导致程序中断,如果不对异常进行处理,则会导致程序中断,在程序的设计中考虑各种异常的发生,做好相应的处理,才能保证程序正常。
异常处理格式
try{
//需要处理异常的语句
}catch (异常类){
//处理异常的语句
}finally {
//每次都执行的语句
}
如果try中产生了异常,则程序跳转到catch语句中找到匹配的进行处理
不管程序是否产生异常 都会执行到finally语句
finally块可省略
public class Hello {
public static void main(String[] args) {
int i=2;
int j=0;
try{
int s=i/j;
}catch(Exception e){
System.out.println(e);
}finally {
System.out.println("测试finally");
}
}
}
所有的异常对象都使用Exception接收
throws与throw
throws
定义方法时可以使用throws声明
标明此方法可能产生异常
使用throws声明的方法表示这个方法不处理异常
而是调用时处理
class Test{
public int tt(int i,int j)throws Exception{
int s=i/j;
return s;
}
}
public class Hello {
public static void main(String[] args) {
Test a = new Test();
try {
System.out.println(a.tt(2,0));
}catch (Exception e){
System.out.println(e);
}
}
}
throw
throw可以直接抛出一个异常
直接抛出异常类的实例化对象
public class Hello {
public static void main(String[] args) {
try{
throw new Exception("抛出异常测试");
}catch (Exception e){
System.out.println(e);
}
}
}
自定义异常类
用户可以根据自己的需要定义自己的异常类,定义异常类,只需要继承Exception类(强制性处理)或者是RuntimeException类(选择性处理
class Test extends Exception{
public Test(String msg){
super(msg);
}
}
public class Hello {
public static void main(String[] args) {
try{
throw new Test("测试自定义异常类");
}catch (Exception e){
System.out.println(e);
}
}
}
1-5行
自定义异常类继承Exception类
构造方法接收异常信息
调用父类的构造方法
6-14行
异常处理 抛出一个异常进行测试 输出异常提示
断言
断言是肯定某一个结果的返回值是正确的,如果最终此结果的返回值是错误的,则通过断言检查肯定会提示错误信息。
语法格式:
assert boolean 表达式;
assert boolean 表达式:详细信息;
如果boolean表达式的结果为true,则什么错误信息都不会提示,如果为false,则会提示错误信息;如果没有声明详细信息的描述,则系统会使用默认的错误信息提示方式。