Java try-catch自定义捕捉异常

  题目要求:输入数值,90-100输出“优”,80-90输出“良”,70-80输出“中”,60-70输出“及格”,0-60输出“不及格”,输入其他捕捉异常并提示相应信息。

  代码如下:

 1 import java.util.Scanner;
 2
 3 @SuppressWarnings("serial")
 4 //自定义异常类
 5 class TryException extends Exception
 6 {
 7     /**
 8      *
 9      */
10     private static final long serialVersionUID = 1L;
11     public TryException(String Message) {
12         super(Message);
13     }
14 }
15
16 public class TryTheWrong {
17     static Scanner in = new Scanner(System.in);
18     public static void main(String args[]) {
19         //运行try-catch
20         try {
21             JudgeError();
22         }
23         catch(TryException e) {
24             //输出自定义异常中的信息
25             System.out.println( e.getMessage() );
26         }
27     }
28     //运行方法,包括输入值,对值的判断以及将要反馈的异常信息throw给自定义异常类
29     public static void JudgeError() throws TryException
30     {
31         String s=in.next();
32         String m="^[0-9]*$";
33         //判定是否全为数字
34         if(!s.matches(m)) {
35             throw new TryException("输入含非数字项");
36         }
37         //string转int
38         int i = Integer.valueOf(s);
39         if(i>100) {
40             throw new TryException("输入数值小于0或大于100");
41         }
42         if(i>=90&&i<=100) {
43             System.out.println("优");
44         }
45         else if(i>=80&&i<90) {
46             System.out.println("良");
47         }
48         else if(i>=70&&i<80) {
49             System.out.println("中");
50         }
51         else if(i>=60&&i<70) {
52             System.out.println("及格");
53         }
54         else if(i>=0&&i<60) {
55             System.out.println("不及格");
56         }
57         else {
58             System.out.println("ERROR");
59         }
60     }
61 }

  创建自定义异常类TryException,利用super()和throw new捕捉反馈的异常信息,最后通过catch中System.out.println(e.getMessage());输出。注意在实行该操作时,类(JudgeError)要throws对应的类名(TryException)。由于输入未知,可能含有非数字元素,因此在进行输入操作时,先作为字符串输入,通过正则表达式判定是否都为数字,再将string转化为int,判断其是否大于100,根据结果判断是否反馈异常信息,若都没有问题,则继续执行下面的if-else if操作,输出正确结果。

原文地址:https://www.cnblogs.com/20183711PYD/p/11756108.html

时间: 2024-08-01 07:22:49

Java try-catch自定义捕捉异常的相关文章

JAVA获取catch中的异常信息

package com.et.zys.test; import java.io.PrintWriter; import java.io.StringWriter; public class UnicodeTest { public static void main(String[] args) { String str = null; try { System.out.println(str.toString()); }catch(Exception e) { StringWriter stri

Java 获取 catch到的异常的StackTrace

try { ... ... } catch (Exception e) { //e.printStackTrace(); StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); String strStackTrace = sw.toString(); }

自定义一个异常类模板代码实例

一:自定义异常类: package 自定义异常; //或者继承RuntimeException(运行时异常) public class MyException extends Exception { private static final long serialVersionUID = 1L; // 提供无参数的构造方法 public MyException() { } // 提供一个有参数的构造方法 public MyException(String message) { super(mes

Java多线程——&lt;七&gt;多线程的异常捕捉

一.概述 为什么要单独讲多线程的异常捕捉呢?先看个例子: public class ThreadException implements Runnable{ @Override public void run() { throw new RuntimeException(); } //现象:控制台打印出异常信息,并运行一段时间后才停止 public static void main(String[] args){ //就算把线程的执行语句放到try-catch块中也无济于事 try{ Execu

Java从零开始学十九(异常)

一.什么是异常 从字面上讲,就是不正常的现实就是异常. 程序中的异常也是要在程序运行中才会偶尔发生.如果程序还没有运行,编译就报错,这种不叫异常,这种叫编译错误,通常是语法上的错误 二.java中异常 Java 提供了两类主要的异常:runtime exception 和checked exception.所有的checked exception 是从java.lang.Exception 类衍生出来的,而runtime exception 则是从java.lang.RuntimeExcepti

Java学习个人备忘录之异常

概述 异常:是在运行时期发生的不正常情况. 在java中用类的形式对不正常情况进行了描述和封装对象. 描述不正常的情况的类,就称为异常类. 以前正常流程代码和问题处理代码相结合,现在将正常流程代码和问题处理代码分离,提高阅读性. 其实异常就是java通过面向对象的思想将问题封装成了对象. 用异常类对其进行描述.不同的问题用不同的类进行具体的描述. 问题很多,意味着描述的类也很多.将其共性进行向上抽取,形成了异常体系. 最终问题(不正常情况)就分成了两大类 Throwable:无论是error,还

Java异常处理 “受控(checked)”的异常

示例程序: public class TestThrows { public static void main(String[] args) { FileInputStream fis = new FileInputStream("a.txt"); } } 为什么以上程序完全符合Java语法规范,但是却会报错呢? 修正: public class TestThrows { public static void main(String[] args) throws FileNotFoun

java第六章:异常机制

Exception 机制 就是在程序执行过程中,出现的异常事件,导致程序的中断. 解决异常的方法:使用try,catch,finally,throw,throws五个关键字解决: 1.try...catch...√ 2.try...catch...catch...√ 3.try...catch...finally...√ 4.try...finally...√ 5.catch...finally...写法错误 finally块中的语句总会被执行,常常写的是资源释放的代码,有return也会被执行

Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)

本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label用来分别显示进度和进度信息,而Dialog的宽度和高度正是闪屏图片的宽度和高度.然后将闪屏图片贴到Dialog中作为整个窗体的背景,Dialog显示时覆盖闪屏所处的区域.由于Dialog显示时闪屏并没有消失,且Dialog的X.Y及宽高都与闪屏图片一致,因此实际切换时,非常流畅,用户感觉不到有异常,