try catch 自定义捕获异常
当我们完成一个程序时,如果没有异常捕获的话,用户使用时会出现许多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 自定义捕获异常的更多相关文章
- trycatch之catch对捕获异常的处理及后续代码的执行的探索
工作时,一直对try块中throw的异常对象,在catch中如何处理此异常,以及trycatchfinally完毕,程序是否就此停止还是继续运行很迷惑,于是参考网上的资料,自己写了些demo,去慢慢探 ...
- PHP try catch
本文转载自百度知道 http://zhidao.baidu.com/link?url=Wi5EOXIf12yBp9d_4VoFHCUFtlTPcZJ0sxidLspV6P7qAqYMap3IC6dXE ...
- 【转】Javascript错误处理——try…catch
无论我们编程多么精通,脚本错误怎是难免.可能是我们的错误造成,或异常输入,错误的服务器端响应以及无数个其他原因. 通常,当发送错误时脚本会立刻停止,打印至控制台. 但try...catch语法结构可以 ...
- java异常处理和自定义异常利用try和catch让程序继续下去(回来自己再写个例子试运行下)
注意:想在catch的参数里使用自定义的异常,则必须先将这个异常抛出才行.(throws是具有抛出异常的能力,并未抛出,throw new MyException是抛出异常,catch是捕获异常,只有 ...
- C#try catch块
try..catch块的出现是为了异常处理. 格式为:try{...可能发生异常的代码...} catch{...对异常的处理...} finaly{...无论如何都会执行的代码..} 上面的只是一般 ...
- SqlServer try catch 捕获不到的一些错误及解决方法(转载)
测试注意 :①假如系统能捕获异常 ,并且我们自己开启了事务.系统会自动 回滚事务的,但是 我们还是要在catch里面加上 rollback tran的习惯,这样也不会提示重复rollback的错误,这 ...
- IOS开发之--异常处理--使用try 和 catch 来捕获错误。
一个搞java的老板问我会不会try catch 我说不会 学这么久也没听周围朋友用这个 因为苹果控制台本来就可以打印异常 特此研究一下. 1.try catch: 是捕获异常代码段 特点:对 ...
- Java 异常处理 try catch finally throws throw 的使用和解读(一)
//最近的一个内部表决系统开发过程中,//发现对异常处理还存在一些模棱两可的地方,//所以想着整理一下//主要涉及到://1.try catch finally throws throw 的使用和解读 ...
- “崩溃了?不可能,我全 Catch 住了” | Java 异常处理
前言 今天我们来讨论一下,程序中的错误处理. 在任何一个稳定的程序中,都会有大量的代码在处理错误,有一些业务错误,我们可以通过主动检查判断来规避,可对于一些不能主动判断的错误,例如 RuntimeEx ...
随机推荐
- 5 分钟入门 Google 最强NLP模型:BERT
BERT (Bidirectional Encoder Representations from Transformers) 10月11日,Google AI Language 发布了论文 BERT: ...
- Gyn 100989 "1D Cafeteria (B)"(set+lower_bound)
传送门 •题意 某自助餐厅有 n 张桌子,桌子编号为 1~n,其中第 i 张桌子可容纳 ai 个人: 有两种操作: (1)in x : 有 x 个人来这家餐厅吃饭,需要找一个可容纳 x 人的桌子,并满 ...
- Intellij Idea更换主题
<h1 class="title">Intellij Idea更换主题</h1> <!-- 作者区域 --> <div class=&qu ...
- python模块之hashlib模块
hashlib模块:提供摘要算法 格式: hashlib格式: obj = hashlib.算法(md5,sha....) obj.update(摘要内容:bytes类型) result = obj. ...
- mysql导入文件出现Data truncated for column 'xxx' at row 1的原因
mysql导入文件的时候很容易出现"Data truncated for column 'xxx' at row x",其中字符串里的xxx和x是指具体的列和行数. 有时候,这是因 ...
- Spring Data JPA坑点记录
本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求.这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring ...
- 2018-9-3-C#-const-和-readonly-有什么区别
title author date CreateTime categories C# const 和 readonly 有什么区别 lindexi 2018-9-3 16:52:7 +0800 201 ...
- background:url(./images.png) no-repeat 0 center的用法
background:url(./images.png) no-repeat 0 center; //图像地址 不重复 水平位置0 垂直位置居中 background:url(./images.png ...
- 11大Java开源中文分词器的使用方法和分词效果对比,当前几个主要的Lucene中文分词器的比较
本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那 ...
- boostrap-非常好用但是容易让人忽略的地方【6】:role属性
普通样式,鼠标hover没有任何效果 <span>content</span> 加上role属性的样式,鼠标hover会有cursor:pointer的效果 <span ...