Java学习--(九)异常处理
来源:互联网 发布:unity3d ios 模拟器 编辑:程序博客网 时间:2024/05/17 23:13
关键字try…catch…catch…finally…(finally执行catch错误后要执行的代码)。
在java语言中,错误类的基类是java.lang.Error,异常类的基类是java.lang.Exception。 两者的父类都是java.lang.Throwable。一般Error类都是程序本身无法修复的错误,而Exception则可以通过异常处理来处理。Exception下如下又有几种异常
使用方法:
try{ System.out.println("输入整数:"); Scanner in=new Scanner(System.in); int num=in.nextInt();//输入字符串就会被catch}catch(InputMissmatchException e){ System.out.println("输入整数!");}//finally{// @TODO//}
如此还可以多个catch一起用。多个catch时按照先细后大的顺序排列,比如先是子类们,最后是Exception这个最大的类。
throw throws
throws用于声明,比如
public static void BNEE() throws BookNotExistException{ System.out.println("请重新输入"); throw new BookNotExistException(); }
表示该函数会抛出BookNotExistException这个异常,也可以不用函数,直接用C++那种方法,在try内直接抛出,但不同的是自己定义的异常抛出时需要关键字new,新建一个object。
自己定义时只需要继承自Exception这个父类就可以,类内可以什么都不用,或者是两个构造函数,如下
class BookNotExistException extends Exception{ BookNotExistException(){} BookNotExistException(String s){ super(s); }}
作业
代码
package com.kaihong;import java.util.InputMismatchException;import java.util.Scanner;class BookNotExistException extends Exception{ BookNotExistException(){} BookNotExistException(String s){ super(s); }}public class BookSystem { public static void BNEE() throws BookNotExistException{ System.out.println("请重新输入"); throw new BookNotExistException(); } public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); String[] books=new String[]{"math","大英","大物"}; int op,num; while(true){ System.out.println("请输入命令:1-按序号查找;2-按书名查找"); try{ op=in.nextInt(); } catch(InputMismatchException e){ System.out.println("命令输入错误,请输入正确指令"); continue; } if(op==1){ System.out.println("请输入序号"); try{ num=in.nextInt(); if(num>3) BNEE(); System.out.println("book:"+books[num-1]); } catch(InputMismatchException e){ System.out.println("命令输入错误,请输入正确指令"); continue; } catch(BookNotExistException e){ System.out.println("图书不存在"); continue; } } if(op==2){ System.out.println("请输入书名:"); try{ String str=in.next(); int flag=0; for(int i=0;i<3;i++){ if(str.equals(books[i])) { System.out.println("books:"+books[i]); flag=1; break; } } if(flag==0){ BNEE(); } } catch(InputMismatchException e){ System.out.println("命令输入错误,请输入正确指令"); continue; } catch(BookNotExistException e){ System.out.println("图书不存在"); continue; } } } }}
0 0
- Java学习--(九)异常处理
- python学习笔记(九)异常处理
- JAVA学习(九)JAVA图形处理
- python 系统学习笔记(九)---异常处理
- python 系统学习笔记(九)---异常处理
- Python学习笔记(九)——异常处理
- Java基础(九)异常处理和断言
- [swift学习之九]异常处理
- Java学习-异常处理
- Java异常处理学习
- JAVA学习笔记(一)---异常处理
- java学习笔记(2):异常处理
- JAVA学习笔记(异常处理)
- java基础学习(三)--异常处理
- Java笔记(九) 异常
- 【Java学习】Java异常-异常处理流程
- JAVA学习笔记之(异常与异常处理)
- Python基础(九)- 异常处理
- 键盘录入一个数组并进行排序
- 在win7系统下使用TortoiseGit(乌龟git)简单操作Git@OSC
- 网页添加百度地图缩略图
- 懒得笔记6 spring hibernate template
- 提交java性能的注意点
- Java学习--(九)异常处理
- android截图
- hdu5391Zball in Tina Town
- tolua++的一些api的
- Redis同步(主从复制)
- 关于flex匿名函数和swift闭包
- ACM对拍程序
- linux学习之路(6)
- C++对象模型详解