1、示例一
// try-catch处理异常
public class Error {
public static void main(String[] args) {
int num1=34,num2=0;
//使用try包裹住会产生异常的代码段
try{
System.out.println(num1/num2);
}
//使用catch去处理对应的异常
catch(ArithmeticException error){
//处理方法
System.err.println("运算错误,除数不能为0!");
}
System.out.println("程序运行结束!");
}
}
结果验证:
运算错误,除数不能为0!
程序运行结束!
2、示例二
import java.util.InputMismatchException;
import java.util.Scanner;
public class Error {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入第一个数字:");
//使用try包裹住会产生异常的代码段
try{
int num1=input.nextInt();
System.out.println("请输入第二个数字:");
int num2=input.nextInt();
System.out.println(num1/num2);
}
//使用catch去处理对应的异常
catch(ArithmeticException error1){
//处理方法
System.err.println("运算错误,除数不能为0!");
}catch(InputMismatchException error2){
System.err.println("请输入正确的数字!");
}
System.out.println("程序运行结束!");
}
}
结果验证:
结果一:
请输入第一个数字:
123
请输入第二个数字:
123
1
程序运行结束!
结果二:
请输入第一个数字:
123
请输入第二个数字:
b
请输入正确的数字!
程序运行结束!
结果三:
请输入第一个数字:
123
请输入第二个数字:
0
运算错误,除数不能为0!
程序运行结束!
3、示例三
// 用户输入字符串转整型
3.1
public class Error {
String str;
public Error(String str) {
this.str = str;
}
public String Transform(){
try{
int num = Integer.parseInt(str);
}catch(NumberFormatException num){
System.out.println("字符串转整型,请输入正确的数字:");
}catch(Exception e){
}
return str;
}
}
// 编写测试类,调用数据类型转换方法,分别传递参数“Good!”、20
public class ErrorDemo {
public static void main(String[] args) {
Error er = new Error("Good!");
er.Transform();
System.out.println(er.str);
}
}
字符串转整型,请输入正确的数字:
Good!
3.2
public class Error {
int num = 0;
public Error() {
}
public Error(int num) {
this.num = num;
}
public int TransformtoInt(String str){
try{
int num1 = Integer.parseInt(str);
}catch(NumberFormatException num){
System.err.println("字符串转整型,请输入正确的数字:");
}catch(Exception error){
error.printStackTrace();
}
return num;
}
}
import java.util.Scanner;
public class ErrorDemo {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数字:");
String str = input.next();
Error toInt = new Error();
toInt.TransformtoInt(str);
System.out.println(str);
}
}
验证:
请输入一个数字:
123
123
请输入一个数字:
abc
字符串转整型,请输入正确的数字:
abc
4、示例四
//throws、throw抛出异常
public class Error {
String sex ;
public Error() {
}
public String getSex() {
return sex;
}
public void setSex(String sex) throws Exception {
if(sex.equals("男")|sex.equals("女")){
this.sex = sex;
}else{
throw new Exception("性别必须为男或者女!");
}
}
}
public class ErrorDemo {
public static void main(String[] args) {
Error er = new Error();
try{
er.setSex("熊");
}catch(Exception error){
error.printStackTrace();
}
System.out.println("程序结束");
}
}
java.lang.Exception: 性别必须为男或者女!
at Error.setSex(Error.java:22)
at ErrorDemo.main(ErrorDemo.java:9)
程序结束
5、
自定义异常
// 创建Excption子类继承Excption父类
//创建类
public class Error {
String sex ;
public Error() {
}
public String getSex() {
return sex;
}
public void setSex(String sex) throws Exception {
if(sex.equals("男")|sex.equals("女")){
this.sex = sex;
}else{
throw new ExceptionDemo("性别必须为男或者女!");
}
}
}
//创建ExceptionDemo子类
public class ExceptionDemo extends Exception {
public ExceptionDemo() {
super();
}
public ExceptionDemo(String message) {
super(message);
}
}
//创建测试类
import java.util.Scanner;
public class ErrorDemo {
public static void main(String[] args) {
Error er = new Error();
try{
Scanner next = new Scanner(System.in);
System.out.println("请输入性别:");
er.setSex(next.next());
}catch(Exception error){
error.printStackTrace();
}
System.out.println("程序结束!");
}
}
结果验证:
请输入性别:
男
程序结束!
请输入性别:
nan
ExceptionDemo: 性别必须为男或者女!
at Error.setSex(Error.java:23)
at ErrorDemo.main(ErrorDemo.java:10)
程序结束!
转载于:https://blog.51cto.com/vipnoon/1795137