——————————————————
import java.util.Scanner;
public class Count {
public static void main (String []args){
int a , b;
Scanner read = new Scanner(System.in);
System.out.print("请输入a:");
a = read.nextInt();
System.out.print("请输入b:");
b = read.nextInt();
System.out.println("a+b="+(a+b));
}
}
看看输入数据会不会出现异常: - 当输入100和200时,运行正常: 
- 当输入100和a时,运行报错: 
## 3.异常的概念 > **异常**:异常指的是在程序运行过程中发生的异常事件,通常是由硬件问题或者程序设计问题所导致的。在Java等面向对象的编程语言中异常属于对象**(Java语言中异常分为运行时异常(Exception)和编译型异常(Error))**。
这就是Java中的异常,输入不合法,程序无法继续运行被迫终止,流程图如下:

——————————————————


## 3.**try-catch**块 **try**语句块中代码执行时发生三种情况: - **try**语句块中代码正常执行完毕,没有任何异常,那么**catch**语句块的代码将不会被执行。
import java.util.*;
public class Count {
public static void main (String []args){
int a , b;
Scanner read = new Scanner(System.in);
try{
System.out.print("请输入a:");
a = read.nextInt();
System.out.print("请输入b:");
b = read.nextInt();
System.out.println("a+b="+(a+b));
}catch(InputMismatchException ex){
System.out.println("不可以,请输数字!");
}
System.out.println("<<<<欢迎使用!>>>>");
}
}
输入100和200后程序顺利进行! - **try**语句块中代码执行过程中产生异常,并且该异常跟**catch**中声明的异常类型相符合,那么**try**语句块中剩余的代码将被忽略,**catch**语句块的代码将被执行。 还是上面代码,输入100和a后程序运行如下: 
- **try**语句块中代码执行过程中产生异常,但是抛出的异常并没有在**catch**语句块中声明,那么这个时候程序会立刻终止。
## 4.**try-catch-finally**块 在**catch**子句后加入**finally**块,可以确保无论是否发生异常,**finally**块中的代码总能被执行。 - 代码示例:
import java.util.*;
public class Count {
public static void main (String []args){
int a , b;
Scanner read = new Scanner(System.in);
try{
System.out.print("请输入a:");
a = read.nextInt();
System.out.print("请输入b:");
b = read.nextInt();
System.out.println("a+b="+(a+b));
}catch(Exception ex){
System.out.println("不可以,请输数字!");
}finally{
System.out.println("<<<<欢迎使用!>>>>");
}
}
}
- 运行结果: 
