>  기사  >  Java  >  Java 예외 메커니즘을 사용하여 도서 대출 시스템을 시뮬레이션하는 단계에 대한 자세한 설명

Java 예외 메커니즘을 사용하여 도서 대출 시스템을 시뮬레이션하는 단계에 대한 자세한 설명

Y2J
Y2J원래의
2017-05-09 11:37:141727검색

이 기사에서는 주로 Java 예외 메커니즘을 사용하여 시뮬레이션 도서 대출 시스템을 구현하는 방법에 대한 관련 정보를 소개합니다. 이 기사에서는 먼저 Java 예외 메커니즘을 간략하게 소개하고 다음을 통해 Java 언어로 콘솔 버전을 구현하는 방법을 소개합니다. 샘플 코드가 필요한 친구들은 모의 도서 대출 시스템을 참고해 보세요.

이 기사에서는 시뮬레이션된 도서 대출 시스템의 콘솔 버전을 구현하기 위해 Java 언어를 사용하는 방법을 소개합니다. 이 기사의 공식적인 내용을 시작하기 전에 먼저 Java 예외 메커니즘을 이해하겠습니다.

예외란 무엇인가요?

비정상, 정상이 아님. Exception은 Exception event의 약자로 프로그램이 실행 중일 때 발생하는 이벤트를 말합니다.

예외는 프로그램의 연속성에 영향을 미치고 중단됩니다. Java에서는 모든 것이 객체이므로 예외를 정의하려면 객체도 사용해야 합니다. 예외 객체

는 프로그램에서 예외가 발생할 때 예외 유형 상태 를 캡슐화합니다.

우리가 흔히 말하는 예외 발생은 예외 개체를 만들어 실행 중인 시스템에 제출하는 것입니다.

예외 포착 메커니즘 및 try-catch

예외가 발생하면 예외가 발생한 위치를 알아야 하므로 해당 예외를 찾는 방법 예외 출처는 어디에 있나요?

Java에서는 호출 스택을 사용하여 메서드 호출 순서를 기록합니다. Java 프로그램에서 예외가 발생하면 이를 처리할 특정 코드 블록을 찾기 위해

호출 스택을 검색합니다. 우리가 아플 때와 마찬가지로(예외) 특정 주제에 대해 의사를 만나러 병원에 갑니다. 예를 들어 아래 그림에서 main 메서드

는 method0을 호출하고, method0은 동일한 방식으로 method1을 호출하는 식입니다.

Java 예외 처리에서는 try-catch 문을 사용합니다. 구문은 다음과 같습니다.

try {

  // 可能出现异常的代码

} catch (ExceptionType name) {

  // 异常处理代码

} catch (ExceptionType name) {

  // 异常处理代码

}

자, 텍스트를 시작하겠습니다.

목표 달성

자바 언어를 사용하여 모의 도서 대출 시스템의 콘솔 버전을 구현하고, 실습java 비정상적인 메커니즘.

요구사항 달성

완제품 달성

참조 코드 및 주석

package com.jinger;
import java.util.Scanner;//导入Scanner包
public class BookManagerEasy {
 private static Scanner console = new Scanner(System.in);//接收系统输入
 public static void main(String[] args) {
 //定义”图书“数组
 String[] books = { "C语言", "数据结构", "汇编语言", "高数", "大学语文", "毛概" };
 while (true) {
 System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书");
 String book;
 try {
 //取得整型命令
 int command = inputCommand();
 //根据不同命令值,进行不同操作
 switch (command) {
 case 1://按照图书名称选择图书
 book = getBookByName(books);
 System.out.println("book:" + book);
 break;
 case 2://按照图书序号(数组下标)选择图书
 book = getBookByNumber(books);
 System.out.println("book:" + book);
 break;
 case -1://返回值为-1,说明输入有误
 System.out.println("命令输入错误!请根据提示输入数字命令!");
 continue;
 default://其他值的命令均认为是错误命令
 System.out.println("命令输入错误!");
 continue;
 }
 break;//退出程序
 } catch (Exception bne) {
 //捕获“图书不存在异常”时,要求重新输入命令
 System.out.println(bne.getMessage());
 continue;
 } 
 }
 }
 //按照图书名称查询图书
 private static String getBookByName(String[] books)
 throws Exception {
 System.out.println("输入图书名称:");
 //获取输入的图书名称
 String name = console.next();
 for (int i = 0; i < books.length; i++) {
 if (name.equals(books[i]))
 //输入的名称与某一图书名称匹配,返回该图书
 return books[i];
 }
 //若无匹配,抛出”图书不存在异常“
 throw new Exception("图书不存在!");
 }
 //根据图书序号(数组下标)查询图书
 private static String getBookByNumber(String[] books)
 throws Exception {
 while (true) {
 System.out.println("输入图书序号:");
 try {
 //获取输入的图书序号(数组下标)
 int index = inputCommand();
 //若返回值为-1
 if(index == -1){
 System.out.println("命令输入错误!请根据提示输入数字命令!");
 continue;
 }
 //若不出现“数组下标越界异常”,则返回相应位置的图书
 String book = books[index];
 return book;
 } catch (ArrayIndexOutOfBoundsException e) {
 //输入的序号不存在(引发“数组下标越界异常”),则抛出“图书不存在异常”
 Exception bookNotExists = new Exception("图书不存在!");
 bookNotExists.initCause(e);
 throw bookNotExists;
 }
 }
 }
 //从控制台输入命令,用于输入命令和输入图书序号
 private static int inputCommand(){
 int command;
 try {
 command = console.nextInt();
 return command;
 } catch (Exception e) {
 //若输入字符型或者字符串,则抛出异常,捕获该异常,抛出“错误命令异常”
 console = new Scanner(System.in);
 //返回-1
 return -1;
 }
 }
}

요약

[관련 추천]

1.

Java 무료 동영상 튜토리얼

YMP 온라인 매뉴얼

3.

Java Annotation 종합 분석

위 내용은 Java 예외 메커니즘을 사용하여 도서 대출 시스템을 시뮬레이션하는 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.