java 异常抛出_Java之异常抛出

异常的使用概述

异常及时Java程序在运行的过程中出行的错误

异常分类

bfcc56c00236

JVM是如何处理异常的

main方法遇到这种问题有两种处理异常的方式 a:自己将问题处理,然后运行 b:没有针对处理方式,就会交给main方法的JVM去处理 c:JVM里面有一个默认的异常处理机制,将异常的名称,信息打印在控制台,并停止程序运行。

try抛出异常的三种方式

try...catch

try...finally

try...catch...finally

public class Demo2_Exception {

public static void main(String[] args) {

// demo();

int a=10;

int b=0;

int[] arr = {11, 22, 33, 44, 55};

try {

int c=a/b;

arr=null;

System.out.println(arr[10]);

System.out.println(c);

//JDK7出现的抛出异常方法,只要出现其中一个就可以抛出异常,为发生错误

}catch(ArithmeticException |ArrayIndexOutOfBoundsException e){

System.out.println("发生错误");

}

}

public static void demo() {

int a=10;

int b=0;

int[] arr = {11, 22, 33, 44, 55};

try {

int c=a/b;

arr=null;

System.out.println(arr[10]);

System.out.println(c);

//如果一个try后边跟着多个catch,最小的条件放在前面,大的条件放在后面

}catch(ArithmeticException e){

System.out.println("被除数为0");

}catch (ArrayIndexOutOfBoundsException e){

System.out.println("数组索引越界");

}catch (Exception e){

System.out.println("发生错误");

}

}

}

异常分类

bfcc56c00236

运行时异常:就是程序出现的错误 编译时异常:在编译程序时会出现的异常,必须在编译时候处理。

Throwable

a:getMessage()是获取异常信息 b:toString()是获取异常的名称 c:printStackTrace()抛出异常信息和名称,已经异常出现的位置,返回值为void

异常throw的方式处理

throws是抛出问题,暴露问题,让调用这使用

编译时异常需要对其处理

运行时异常可以处理也不可以处理

Throw概述:

在方法类部使用,程序不能进行,需要跳转,就用throw抛出异常

Throws是在方法名称上声明后面,跟在类名后面,可以接多个异常类名,可以用逗号隔开。

final ,finally,finallize

final是修饰类的,类不能被继承。

final修饰方法,不能被重写。

fianl修饰常量,只能赋值一次

finally,是try...catch的一个语句,不能单独使用,使用来释放资源

fianllize是一个方法,当垃圾回搜器不存在引用对象,由对象的垃圾回收此调用方法。

public class Demo7_Finally {

public static void main(String[] args) {

try {

System.out.println(10/0);

}catch (Exception e){

e.printStackTrace();

System.exit(0);

return;

}finally {

System.out.println("我这有没有执行");

}

}

自定义异常

通过名称去确定啥类型的异常,这样就有针对性的解决异常

Java

public class Demo8_Exception {

}

class AgeOutOfBoundsException extends Exception {

public AgeOutOfBoundsException() {

super();

}

public AgeOutOfBoundsException(String message) {

super(message);

}

public class Demo8_Exception_Zhidingyi {

public static void main(String[] args) {

Person1 person1 = new Person1();

person1.setAge(99);

System.out.println(person1.getAge());

}

}

异常注意事项

子类在重写父类的方法时候,子类必须抛出和父类相同,父类子类的异常,子类不能抛出父类没有的异常。 try... catch的区别 try后面要接运行的代码 finally后面接不运行的代码

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值