Java学习笔记-基础语法Ⅵ-异常
异常
对于异常,JVM默认处理方案为:把异常名称、异常原因以及异常出现的位置等信息输出在控制台,并且程序停止执行
异常处理方式一:try ... catch
public class Demo {
public static void main(String[] args) {
System.out.println("开始");
show();
System.out.println("结束");
}
public static void show(){
int [] arr = {1,2,3};
try {
System.out.println(arr[2]);
// ArrayIndexOutOfBoundsException
System.out.println(arr[3]);
}catch (ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}
}
}
Throwable三个主要成员方法:printStackTrace、getMessage、toString
编译时异常表示有可能出现异常,需要处理
异常处理方式二:throws
throws抛出异常给上级,实际上并没有解决异常,等到上级调用时再使用try catch或者继续抛出
也可以自定义异常(个人感觉不是很常用,因为有需要的话,写个if语句就可以)
// 先定义一个异常,这个异常继承Exception
public class ScoreException extends Exception{
public ScoreException(){}
public ScoreException(String message){
super(message);
}
}
// 再写一个类,这个类中的方法语句可以抛出异常对象,方法名抛出异常类
public class Teacher {
public void checkScore(int score) throws ScoreException {
if(score<0||score>100){
throw new ScoreException("分数有误");
}else{
System.out.println("分数正常");
}
}
}
// 测试类
public class TeacherDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入分数");
int score = sc.nextInt();
Teacher t = new Teacher();
try {
t.checkScore(score);
} catch (ScoreException e) {
e.printStackTrace();
}
}
}
这里测试类中采用的是try catch方法,如果在main中throws也是可以的,那这样相当于抛给了main这个静态方法去解决
Java学习笔记-基础语法Ⅵ-异常的更多相关文章
- Java学习笔记-基础语法Ⅳ
多态:同一个对象,在不同时刻表现出来的不同形态 例如: 猫 cat = new 猫(); 动物 animal = new 猫(); 这里的猫在不同时刻表现出来不同的形态,这就是多态 多态的前提和体现: ...
- Java学习笔记-基础语法
Java基础包含关键字,标识符,注释,常量和变量,运算符 关键字 关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有字母都为小写 Java的关键字 用于定义数据类型的关键 ...
- Java学习笔记-基础语法Ⅹ-进程线程
学习快一个月了,现在学到了黑马Java教程的300集 打印流的特点: 只负责输出数据,不负责读取数据 有自己的特有方法 字节打印流:PrintStream,使用指定的文件名创建新的打印流 import ...
- Java学习笔记-基础语法Ⅷ-泛型、Map
泛型 泛型本质上是参数化类型,也就是说所操作的数据类型被指定为一个参数,即将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型,这种参数类型可以用在类.方法和接口中,分别为泛型类.泛型方法 ...
- Java学习笔记-基础语法Ⅶ-集合
集合 集合类特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变 这里需要回顾一下,因为数组和字符串一旦创建,就不可改变,需要区分一下 import java.util.ArrayLi ...
- Java学习笔记-基础语法Ⅴ
学习一些Java常用的API Math:包含执行基本数字运算的方法 如果没有构造方法,一般类的成员都是静态的,通过类名可以直接调用 Java中有两种random函数,Math.Random()函数能够 ...
- JAVA 学习笔记 - 基础语法 2
---恢复内容开始--- 1.数组的申明和应用 数据类型 数组名称[] = null; //在堆栈中申明变量名称 数组名称 = new 数据类型[10]; // ...
- JAVA 学习笔记 - 基础语法1
1. 类的定义 public class 与 class的区别 一个java文件只有一个public class, 而且类名必须与文件名一致. 一个java文件可以有多个class定义,javac ...
- Java学习笔记-基础语法ⅩⅠ-UDP、TCP
网络编程 三要素:IP地址.端口.协议 IP地址:使用ipconfig查看,如果装了VM的话,会有VMnet1.VMnet8和WLAN,net1不能从虚拟机到主机,net8不能从主机到虚拟机,net0 ...
随机推荐
- ACM - 图论- 网络流 - 算法模板
\(EK\) 算法模板 #include <iostream> #include <queue> #include<string.h> using namespac ...
- 8.5_线性控制器设计_轨迹跟踪(Follow a Desired Path)
平衡点时所有的导数都为0 simulink中建立状态方程模型
- 谈谈关于CSS中transform属性之scale
谈谈关于scale属性 scale是什么? 根据W3C定义 ,scale主要是进行缩放和转化: scale能做什么? 1.1px细线 <div class="wrap"> ...
- 国际化相对时间格式化API:Intl.RelativeTimeFormat
原文:The Intl.RelativeTimeFormat API 作者:Mathias Bynens(@mathias) 现代 Web 应用程序通常使用"昨天","4 ...
- c++实现状态模式
实验:用Java代码模拟实现课堂上的"银行账户"的实例,要求编写客户端测试代码模拟用户存款和取款,注意账户对象状态和行为的变化. 由于是c++,不像java那么灵活,所以类的调用方 ...
- Java简单登录图形界面
本文参考与:https://blog.csdn.net/wyf2017/article/details/78831744 https://blog.csdn.net/MengKun822/articl ...
- Android Studio登陆界面+Button不变色问题
今日所学内容: 1.初始相对布局 2.AS登录界面 3.一个可以下载小图标的阿里的网站iconfont-阿里巴巴矢量图标库 用GitHub账号绑定就可以免费下载 4.取颜色工具ColorCop 遇到的 ...
- sequelize模型
model表示数据库中的表,有时它也会被称为"模型"或"工厂".Model不能通过构造函数创建,只能通过sequlize.define方法来定义或通过sequl ...
- 为什么HashMap使用红黑树而不使用AVL树
为什么HashMap使用红黑树而不使用AVL树? 红黑树适用于大量插入和删除:因为它是非严格的平衡树:只要从根节点到叶子节点的最长路径不超过最短路径的2倍,就不用进行平衡调节 AVL 树是严格的平衡树 ...
- [ThinkPHP]2-Rce buuoj
[ThinkPHP]2-Rce 进来是这个页面 构造路径. 好,构造正确,但是服务器拦截了对该操作的访问 打开提示网站,看到关键信息 分析正则 老版本的正则可以用 '@'符号表示模式.以下正则是模式e ...