异常

异常处理

Java的异常处理是通过5个关键字来实现的:【try】【catch】【finally【throw】【throws】




使用try/catch块捕获异常,分为三种情况:




示例:

public class Exception {
public static void main(String[] args) {
System.out.print("请输入课程代号(1至3之间的数字):");
Scanner in = new Scanner(System.in);
try {
int courseCode = in.nextInt();
switch (courseCode) {
	case 1:
	        System.out.println("C#编程");
	        break;
	case 2:
	        System.out.println("Java编程");
	        break;
	case 3:
	        System.out.println("SQL基础");
}
} catch (Exception ex) {
        System.out.println("输入不为数字!");
}
System.out.println("欢迎提出建议!");
}
}



示例:

public class Exception {
public static void main(String[] args) {
System.out.print("请输入课程代号(1至3之间的数字):");
Scanner in = new Scanner(System.in);
try {
int courseCode = in.nextInt();
switch (courseCode) {
	case 1:
		System.out.println("C#编程");
		break;
	case 2:
		System.out.println("Java编程");
		break;
	case 3:
		System.out.println("SQL基础");
}
} catch (Exception ex) {
        System.out.println("输入不为数字!");
        ex.printStackTrace();
}
System.out.println("欢迎提出建议!");
}
}



示例:

public class Exception2 {
public static void main(String[] args) {
System.out.print("请输入课程代号(1至3之间的数字):");
Scanner in = new Scanner(System.in);
try {
int courseCode = in.nextInt();
switch (courseCode) {
	case 1:
	        System.out.println("C#编程");
	        break;
	case 2:
	        System.out.println("Java编程");
	        break;
	case 3:
	        System.out.println("SQL基础");
}
} catch (NullPointerException ex) {
        System.out.println("输入不为数字!");
}
System.out.println("欢迎提出建议!");
}
}

在try/catch块后加入finally块,可以确保无论是否发生异常,finally块中的代码总能被执行




示例:

public class Exception3 {
public static void main(String[] args) {
System.out.print("请输入课程代号(1至3之间的数字):");
Scanner in = new Scanner(System.in);
try {
int courseCode = in.nextInt();
switch (courseCode) {
	case 1:
	        System.out.println("C#编程");
	        break;
	case 2:
	        System.out.println("Java编程");
	        break;
	case 3:
	        System.out.println("SQL基础");
}
} catch (Exception ex) {
        System.out.println("输入不为数字!");
} finally {
        System.out.println("欢迎提出建议!");
}
}
}

多重catch块

一段代码可能会引发多种类型的异常

当引发异常时,会按顺序来查看每个catch语句,并执行第一个与异常类型匹配的catch语句

执行其中一条catch语句之后,其后的catch语句将被忽略



示例:

public class Exception4 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
try{
System.out.print(“请输入S1的总学时:");
int totalTime = in.nextInt();            //总学时
System.out.print(“请输入S1的课程数目:");
int totalCourse = in.nextInt();       //课程数目
System.out.println(“S1各课程的平均学时为:" 
                                  + totalTime / totalCourse);
} catch (InputMismatchException e1) {
System.out.println("输入不为数字!");
} catch (ArithmeticException e2) {
System.out.println("课程数目不能为零!");
} catch (Exception e) {
System.out.println("发生错误:"+e.getMessage());
}
}
}

抛出异常

public class Teacher {
    private String id;     // 教员编号,长度应为7
    public void setId(String pId){
 // 判断教员编号的长度是否为7
 if (pId.length() == 7) {
id = pId;
 } else {
throw new IllegalArgumentException("参数长度应为7!");
 }
    }
}

public class TeacherTest {
    public static void main(String[] args) {
Teacher teacher = new Teacher();
 try {
teacher.setId("088");
 } catch (IllegalArgumentException ex) {
System.out.println(ex.getMessage());
 }
     }
}

声明异常




log4j记录日志信息




日志

用来记录一些重要的才做信息

有价值的日志数据能够帮助用户提前发现和避开灾难,并且找到事件发生的原因




如何使用log4j记录日志












finally与reurn


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值