JVM虚拟机默认异常处理机制

Java异常处理:

1.try...catch...

2.throw

1.try...catch...

 public class test{
public static void main(String[] args) {
System.out.println("开始");
method();
System.out.println("结束");
}
public static void method(){
int[] arr={1,2,3};
try {
System.out.println(arr[3]); //访问超出索引
}
catch (ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}
}
}
/*
开始
java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
at pack2.test.method(test.java:13)
at pack2.test.main(test.java:7)
结束
*/

Exception异常类常用方法

编译时异常和运行时异常

2.throws

throws将异常抛出去,让try_catch_来处理

 import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class test{
public static void main(String[] args) {
System.out.println("开始");
try {
method();
}
catch (ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}
try {
method2();
}
catch (ParseException e){
e.printStackTrace();
}
System.out.println("结束");
}
//编译时异常,不加throws ParseException不能编译
public static void method2() throws ParseException {
String s="2048-08-09";
SimpleDateFormat sdf=new SimpleDateFormat("yyy-MM-dd");
Date d=sdf.parse(s);
System.out.println(d);
}
//运行时异常,不加throws ArrayIndexOutOfBoundsException可以编译
public static void method() throws ArrayIndexOutOfBoundsException{
int[] arr={1,2,3};
System.out.println(arr[3]);
}
}
/*
开始
java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
at pack2.test.method(test.java:36)
at pack2.test.main(test.java:13)
Sun Aug 09 00:00:00 CST 2048
结束
*/

自定义异常

 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("分数正常");
}
}
} import java.util.Scanner;
public class test{
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();
}
}
}

32.Java基础_异常的更多相关文章

  1. java基础之异常 · fossi

    在开发中,异常处理是一个不可绕开的话题,我们对于异常的处理已经非常熟练了,对于异常本身的概念.用法等不再赘述了,直接结合面试问题来加深对异常的理解吧. Throwable 可以用来表示任何可以作为异常 ...

  2. 【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!

    目录 1.异常 1.1 异常概念 1.2 异常体系 1.3 异常分类 1.4 异常的产生过程解析 2. 异常的处理 2.1 抛出异常throw 2.2 Objects非空判断 2.3 声明异常thro ...

  3. 【java基础之异常】死了都要try

    目录 1.异常 1.1 异常概念 1.2 异常体系 1.3 异常分类 1.4 异常的产生过程解析 2. 异常的处理 2.1 抛出异常throw 2.2 Objects非空判断 2.3 声明异常thro ...

  4. Java基础之异常

    1.异常的概念 异常:程序在运行时出现的不正常情况,也可以说是出现的问题: Java中的异常:出现的不正常的问题也是一类事物,这类事物有一些共性的东西,比如有名称,有产生的原因等,将这些共性的部分抽取 ...

  5. java_基础_异常

    之前只是了解的最基础的异常形式,没有过多的深入 今天因为一些原因了解了一下 下面来说说异常的几种形式 1.try-catch语句块 代码示例 class test{ public static voi ...

  6. JAVA基础知识|异常

    一.基础知识 处理异常,java提供了一个优秀的解决方案:异常处理机制. java把异常当作对象来处理,所有的异常都是由Throwable继承而来,但在下一层立即分解为两个分支:Error和Excep ...

  7. Java基础笔记-异常

    Java中的异常机制: Throwable类是 Java 语言中所有错误或异常的超类.主要包括两个子类: Error和Exception. 一般中要处理的异常是Exception. Java中最常见的 ...

  8. 黑马程序员----java基础:异常

    dff ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 经常写程序的人对try...catch...finally语句肯定是不陌生的了.但是好多 ...

  9. java基础(21):异常

    1. 异常 什么是异常?Java代码在运行时期发生的问题就是异常. 在Java中,把异常信息封装成了一个类.当出现了问题时,就会创建异常类对象并抛出异常相关的信息(如异常出现的位置.原因等). 1.1 ...

随机推荐

  1. ef not in

    //not in linq var xx=(from c in measStateDetail where !((from d in breakInstr select d.InstrCode).Co ...

  2. 【Git】405- 分享:大牛总结的 Git 使用技巧

    作者:你喜欢吃青椒么 来源:juejin.im/post/5d157bf3f265da1bcc1954e6 前言 本文是参考廖雪峰老师的Git资料再加上我自己对Git的理解,记录我的Git学习历程,作 ...

  3. docker-网络管理-桥接网络

    一.配置桥接网络   需求:为了使本地网络中的机器和Docker容器更方便的通信,我们经常会有将Docker容器配置到和主机同一网段的需求.这个需求其实很容易实现,我们只要将Docker容器和宿主机的 ...

  4. 当placeholder的字体大小跟input大小不一致时,实现placeholder垂直居中

    如图:搜索和图标不是垂直居中着实难受 最终通过如下代码实现: input::-webkit-input-placeholder { transform: translate(0, 2px); }

  5. 【CentOS7】curl命令

    [CentOS7]curl命令 转载: 参考 https://www.thegeekstuff.com/2012/04/curl-examples/ http://www.cnblogs.com/gb ...

  6. 205K+程序员关注过的问题:为什么不应该使用Java的原始类型?

    在逛 Stack Overflow 的时候,发现了一些访问量像熊耳山一样高的问题,比如说这个:为什么不应该使用Java的原始类型?访问量足足有 205K+,这不得了啊!说明有很多很多的程序员被这个问题 ...

  7. 稳定易用的 Django 分页库,完善分页功能

    作者:HelloGitHub-追梦人物 文中所涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 在 通过 Django Pagination 实现简单分页 中,我们实现了一个简单的 ...

  8. NodeJS4-8静态资源服务器实战_构建cli工具

    Cli(command-line interface),中文是 命令行界面,简单来说就是可以通过命令行快速生成自己的项目模板等功能(比较熟悉的是vue-cli脚手架这些),把上述写的包做成Cli工具. ...

  9. [系列] Go 使用 defer 函数 要注意的几个点

    概述 defer 函数大家肯定都用过,它在声明时不会立刻去执行,而是在函数 return 后去执行的. 它的主要应用场景有异常处理.记录日志.清理数据.释放资源 等等. 这篇文章不是分享 defer ...

  10. oracle创建索引

    数据库索引是为了提高查询速度的一种数据结构. 索引的创建语句 索引的创建语句非常简单. CREATE INDEX 索引名 ON 表名(列名); 除了单列索引,还可以创建包含多个列的复合索引. CREA ...