首页 > 编程语言 >Java拾贝第七天——throws和throw、自定义异常

Java拾贝第七天——throws和throw、自定义异常

时间:2023-10-20 22:33:56浏览次数:42  
标签:Exception Java 拾贝 自定义 throws main 异常 public

Java拾贝不建议作为0基础学习,都是本人想到什么写什么

throws

在定义一个方法时可以使用throws,表示此方法不处理异常,转而交给方法的调用处进行处理。

public class Test7 {
    public static void main(String[] args) {
        Math math = new Math();
        try {
            math.div(10,0);//方法调用处进行处理
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
class Math{
    public  int div(int i,int j)throws Exception{//抛出异常并且方法中不处理异常
        return i/j;
    }
}

既然可以使用throws抛出异常,那么main方法抛出异常可以吗?

public class Test7 {
    public static void main(String[] args) throws Exception {
	//主方法抛出了异常,那么主方法就可以不处理异常。
        Math math = new Math();
        math.div(10,0);
    }
}
class Math{
    public  int div(int i,int j) throws Exception{
        return i/j;
    }
}

程序运行结果:

Exception in thread "main" java.lang.ArithmeticException: / by zero
	at moudle1.Math.div(Test7.java:13)
	at moudle1.Test7.main(Test7.java:6)

虽然main方法可以抛出异常。但main方法作为程序的起点,只能将异常抛给JVM(虚拟机)处理了,这也就到头了。如果说Java有"头"的概念,那JVM就是Java的"头"。

如果在主方法中使用throws,程序出现问题后肯定交给JVM处理,这将会导致程序中断。

throw

可以人为的实例化一个异常对象并使用throw抛出。

    public static void main(String[] args)  {
        try {
            new NullPointerException();
        }catch (Exception e){
            e.printStackTrace();
        }
    }

上述代码中我们人为的创造了一个异常并捕获处理了。

在finally中,要尽量避免出现throw或return这样的语句。

自定义异常

虽然Java提供了很多异常,难免出现意外情况,至此Java还提供了自定义异常。

public class Test7 {
    public static void main(String[] args) {
        try {
            throw new MyException();//抛出一个自定义的异常
        } catch (Exception e) {
            System.out.println("捕获自定义的异常");
        }
    }
}

class MyException extends Exception {//自定义的异常
    public MyException() {
        super();
    }
}

程序运行结果:

捕获自定义的异常

标签:Exception,Java,拾贝,自定义,throws,main,异常,public
From: https://www.cnblogs.com/Ocraft/p/17778149.html

相关文章

  • JAVA项目中的常用的异常处理情况总结
    在Java项目开发中,异常处理是至关重要的一部分。良好的异常处理能够提高程序的稳定性和可靠性,使得程序在面对意外情况时能够有所作为,而不至于因为一些小错误而导致整个系统崩溃。以下是Java项目中常见的异常处理情况及其处理方法的详细总结:1.空指针异常(NullPointerException)空指......
  • SpringMVC自定义处理返回值demo和异步处理模式DeferredResult demo
    搭建自定义返回值处理器demo新建springboot项目修改pom.xml<!--新增依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><gro......
  • java基础补习继承、抽象和接口
    之前java都是快速入手,很多的基础知识不牢固。没有系统学过。但是现在系统学也有点费时间,我就是碰到那些基础知识不懂或者不太明白时去找对应课程那一小节去学习那些知识。今天就小小学习了下java的继承、抽象还有接口等基础知识。 ......
  • Java学习之路(一)
    Java学习之路(一)Java基础语法1、注释注释是对代码的解释和说明的文字,可以提高程序的可读性。Java的注释分为三种:单行注释。//这是单行注释多行注释。/* 这是多行注释*/注意:多行注释不能嵌套使用。文档注释。/** 文档注释以/**开始, 以*/结束*/2、关键字关键字是......
  • Java拾贝第七天——异常
    Java拾贝不建议作为0基础学习,都是本人想到什么写什么在程序实际运行过程中,可能存在大量的未知问题,所以在程序中对错误的处理是极其重要的。Java提供的异常处理机制可以更好地解决这方面的问题。认识异常publicstaticvoidmain(String[]args){System.out.prin......
  • distributed-programming-in-java
    WEEK11MAP-REDUCEHADOOP K-VpairSparkResilientdistributeddatasetPageRankRank(B)=sum(Rank(A)/DEST_COUNT(A)) Week2SocketJVM_A->JVM_Bb:serversocketa: bSocket.accept().a.getInputStream()a,getOutputStream a:Socketa.getInputs......
  • javascript: 合并数组
     <!doctypehtml><html><head><metacharset="utf-8"><metaname="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no"><metahttp-eq......
  • Java倒计时
    staticintcountDownTime=100;//用来设置总时间Timertimer=newTimer();TimerTasktask=newTimerTask(){@Overridepublicvoidrun(){if(countDownTime!=0){countDownTime--;......
  • 2D物理引擎 Box2D for javascript Games 第五章 碰撞处理
    2D物理引擎Box2DforjavascriptGames第五章碰撞处理碰撞处理考虑到Box2D世界和在世界中移动的刚体之间迟早会发生碰撞。而物理游戏的大多数功能则依赖于碰撞。在愤怒的小鸟中,小鸟摧毁小猪的城堡时,便是依赖碰撞而实现的;在图腾破坏者中,当神像坠落到图腾上或摔碎在地面上......
  • javascript 数组对象根据id去重的几种方法
    例如:想去除重复id为1的项arr=[{id:1,name:'张三',age:20},{id:1,name:'张三',age:20},{id:2,name:'李四',age:20},{id:3,name:'马五',age:20},];方法一通过forEach再通过some方法判断数组是否包含当前对象id,不包含则添加so......