当我们完成一个程序时,如果没有异常捕获的话,用户使用时会出现许多bug。而加入异常捕获之后便会提醒用户使用时避免产生不必要的错误。具体操作实现如下:

  首先创造一个MyException类,继承自Exception类,在MyException的方法中调用父类的方法,返回错误的提示信息。

 package classTest;

 public class MyException extends Exception {
private static final long serialVersionUID = 1L; public MyException(String message) {
super(message);
}
} 

使用该类判断录入的字符是否是正整数类型,如果不是,返回相关的错误信息;否则根据相关的条件返回成绩的评定等级。

使用try catch时,在代码产生的异常可以被throw语句抛出并被catch语句捕获。(必须被抛出才能被捕获)

必须将可能存在异常的代码放在try代码块内,才能捕获可能抛出的异常。一个try类可以对应一个或者多个catch类,一但抛出的异常被一个catch捕获,其他就不会执行。

完整的try catch语句还有finally语句,用来捕获其他情况。

 package classTest;

import java.util.Scanner;

 public class studentGrade {
static Scanner sc = null; static int check(String c) throws MyException {
if (!c.matches("^\\-?[0-9]+$")) { // 匹配所有的整数
throw new MyException("请输入整数数字!");
}
if ((Integer.valueOf(c)) > 100 || (Integer.valueOf(c)) < 0) { // 判断是否为规定范围的整数
throw new MyException("请输入0到100之间的整数!");
} return Integer.valueOf(c);
} public static void main(String[] args) {
System.out.println("请输出一个整数:");
String c = null; sc = new Scanner(System.in);
c = sc.nextLine();
try {
int a = check(c);
if (a <= 100 && a >= 90) {
System.out.println("优!");
} else if (a >= 80 && a < 90) {
System.out.println("良!");
} else if (a >= 70 && a < 80) {
System.out.println("中!");
} else if (a >= 60 && a < 70) {
System.out.println("及格!");
} else {
System.out.println("不及格!");
}
} catch (MyException e) {
System.out.println(e); // 输出捕获的异常信息
} finally {
System.out.println("检查异常完成!"); // finally语句块的执行
}
}
}

运行结果如下:

try catch 自定义捕获异常的更多相关文章

  1. trycatch之catch对捕获异常的处理及后续代码的执行的探索

    工作时,一直对try块中throw的异常对象,在catch中如何处理此异常,以及trycatchfinally完毕,程序是否就此停止还是继续运行很迷惑,于是参考网上的资料,自己写了些demo,去慢慢探 ...

  2. PHP try catch

    本文转载自百度知道 http://zhidao.baidu.com/link?url=Wi5EOXIf12yBp9d_4VoFHCUFtlTPcZJ0sxidLspV6P7qAqYMap3IC6dXE ...

  3. 【转】Javascript错误处理——try…catch

    无论我们编程多么精通,脚本错误怎是难免.可能是我们的错误造成,或异常输入,错误的服务器端响应以及无数个其他原因. 通常,当发送错误时脚本会立刻停止,打印至控制台. 但try...catch语法结构可以 ...

  4. java异常处理和自定义异常利用try和catch让程序继续下去(回来自己再写个例子试运行下)

    注意:想在catch的参数里使用自定义的异常,则必须先将这个异常抛出才行.(throws是具有抛出异常的能力,并未抛出,throw new MyException是抛出异常,catch是捕获异常,只有 ...

  5. C#try catch块

    try..catch块的出现是为了异常处理. 格式为:try{...可能发生异常的代码...} catch{...对异常的处理...} finaly{...无论如何都会执行的代码..} 上面的只是一般 ...

  6. SqlServer try catch 捕获不到的一些错误及解决方法(转载)

    测试注意 :①假如系统能捕获异常 ,并且我们自己开启了事务.系统会自动 回滚事务的,但是 我们还是要在catch里面加上 rollback tran的习惯,这样也不会提示重复rollback的错误,这 ...

  7. IOS开发之--异常处理--使用try 和 catch 来捕获错误。

    一个搞java的老板问我会不会try catch  我说不会 学这么久也没听周围朋友用这个 因为苹果控制台本来就可以打印异常 特此研究一下. 1.try catch:  是捕获异常代码段   特点:对 ...

  8. Java 异常处理 try catch finally throws throw 的使用和解读(一)

    //最近的一个内部表决系统开发过程中,//发现对异常处理还存在一些模棱两可的地方,//所以想着整理一下//主要涉及到://1.try catch finally throws throw 的使用和解读 ...

  9. “崩溃了?不可能,我全 Catch 住了” | Java 异常处理

    前言 今天我们来讨论一下,程序中的错误处理. 在任何一个稳定的程序中,都会有大量的代码在处理错误,有一些业务错误,我们可以通过主动检查判断来规避,可对于一些不能主动判断的错误,例如 RuntimeEx ...

随机推荐

  1. error LNK2001: unresolved external symbol __imp___rt_sdiv

    这个问题搞了我 5 天(包括双休日), 我一定要记录下来. 问题描述 用 Visual Studio 2008 编译 WinCE 7 平台的应用程序,编译没问题,链接时出现了一堆 Link error ...

  2. 洛谷P2590 [ZJOI2008]树的统计 题解 树链剖分+线段树

    题目链接:https://www.luogu.org/problem/P2590 树链剖分模板题. 剖分过程要用到如下7个值: fa[u]:u的父节点编号: dep[u]:u的深度: size[u]: ...

  3. .NET 创建 WebService

    服务器端代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sy ...

  4. dotnet 设计规范 · 数组定义

    本文告诉大家数组定义需要知道的规范,本文翻译 docs dotnet ✓ 建议在公开的 API 使用集合而不是数组.集合可以提供更多的信息. X 不建议设置数组类型的字段为只读.虽然用户不能修改字段, ...

  5. Mac下SVN基本操作和常见错误

    一.基本操作 1  从服务器上下载代码 svn checkout http://xxx.xxx.xxx/xxx 2  获取最新的代码 svn update 3  提交代码 svn commit -m ...

  6. win10 uwp 使用 Azure DevOps 自动构建

    通过 Azure DevOps 可以做到自动构建程序,覆盖计划.创建.编程.测试.部署.发布.托管.共享等各个环节,适用于大多数的语言.平台. 本文继续使用图床为例告诉大家如何使用 Azure Dev ...

  7. H3C Network命令详解

  8. CCPC2018 桂林 D "Bits Reverse"

    传送门 题目描述 Now given two integers x and y, you can reverse every consecutive three bits ,,) means chan ...

  9. 机器学习——EM

    整理自: https://blog.csdn.net/woaidapaopao/article/details/77806273?locationnum=9&fps=1 EM算法是用于含有隐变 ...

  10. multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded

    情景再现: 上传文件到.net(wcf)后台时,总是上传不成功,后台要求Content-Type是application/octet-stream,我使用multipart/form-data方式,c ...