java中的异常

生活中的异常

正常:每天上班开车30分钟到达公司
异常:路上堵车

package cn.jbit.exception;

import java.util.Scanner;

/**
 * 演示程序中的异常。
 * @author administrator
 */
public class Test1 {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		System.out.print("请输入被除数:");
		int num1 = in.nextInt();
		System.out.print("请输入除数:");
		int num2 = in.nextInt();
		System.out.println(num1+"/"+ num2 +"="+ num1/ num2);
		System.out.println("感谢使用本程序!");
	}
}


package cn.jbit.exception;

import java.util.Scanner;

/**
 * 传统处理程序中的异常。
 * @author administrator
 */
public class Test2 {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		System.out.print("请输入被除数:");
		int num1 = in.nextInt();
		System.out.print("请输入除数:");
		int num2 = 0;
		if (in.hasNextInt()) { // 如果输入的除数是整数
			num2 = in.nextInt();
			if (0 == num2) { // 如果输入的除数是0
				System.err.println("输入的除数是0,程序退出。");
				System.exit(1);
			}
			System.out.println(num1+"/"+ num2 +"="+ num1/ num2);
			System.out.println("感谢使用本程序!");
		} else { // 如果输入的除数不是整数
			System.err.println("输入的除数不是整数,程序退出。");
			System.exit(1);
		}
		
	}
}

弊端:代码臃肿,程序员要花很多精力去堵漏洞 ,程序员很难堵住所有漏洞

异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序

生活中如何解决
堵车:绕行或者等待
撞车:寻求交警
生活中,根据不同的异常进行相应的处理,而不会就此中断我们的生活

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

捕获异常: try 执行可能产生 异常的代码、catch 捕获异常 、 finally 无论是否发生异常代码总能执行,

声明异常:throws 声明方法可能要抛出的各种异常

抛出异常:throw 手动抛出异常

在这里插入图片描述

按照控制台提示输入13之间任一个数字,程序将输出相应的课程名称
根据键盘输入进行判断。如果输入正确,输出对应课程名称。如果输入错误,给出错误提示
不管输入是否正确,均输出“欢迎提出建议!”语句

package cn.jbit.exception;

import java.util.Scanner;

/**
 * 测试try-catch-finally的使用,根据编号输出课程名称
 * @author administrator
 */
public class TestException1 {
	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();
		} finally {
			System.out.println("欢迎提出建议!");
		}
	}
}

PS 以后会进行完善

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值