Java的throws Exception

2023-05-16

转:https://www.cnblogs.com/feichengwulai/articles/3793261.html
1、(终极解释!!!)throws Exception放在方法后边,是throws Exception表示的是本方法不处理异常,交给被调用处处理(如果你不希望异常层层往上抛,你就要用throws Exception) ,而且被调用处必须处理。
2、throw new Exception 表示人为的抛出一个异常,例如:
public boolean insert(News n) {
try{
.....
}catch{
throw new Exception("这是我自己抛出的一个异常,如果我看到此段信息表示我这个方法这儿出错了,给自己看的!");
}finally{
}
}

3,首先方法后边加上throws Exception的作用是抛出异常。其中Exception可以理解为所有异常,也可以抛出指定异常。如果方法后边不加throws Exception,方法出了异常就会向上传递抛出(如果方法有调用者,那就交给调用者处理,如果调用者继续一层层抛出,最终交给虚拟机,虚拟机处理,整个程序会中断! 如果在程序中捕获  还可以继续进行。)。

4,如果有异常你不用层层向上抛出那么你就要用throws Exception,然后在调用时加上try catch语句处理...。。。如果有异常我一般选择这种处理方法。相比不用throws Exception,加上了throws Exception后,调用该方法时,必须加上try...catch才可以(你加上throw exception。调用的地方就必须try catch,不然编译都不过。。这样代码就更健壮了。)。

  相当于一种约束,如果不加throws Exception,在多个地方调用方法时,添加try...catch也可以,但是有时候就会忘记加try...catch。

5,另外异常处理的原则是尽可能早的catch异常,正常的程序不应该写throws Exception

6,运行异常(继承RuntimeException)可以不捕获,向上抛,如果一直没有处理,则jvm会自动处理(停止线程,打印异常)。
---非运行期异常,必须捕获或者在方法声明。

public class helloworld {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // System.out.printf("hello.java");
        try {
            test();
        } catch (Exception e) {
            System.out.printf(e.getMessage());
        }
    }

    /*
     * 
     * throws
     * Exception:如果出现未知错误,会跑出Exception。如果这里加了异常捕捉,调用test方法时,就要加上try...catch
     */ 
    private static void test() throws Exception {
        ArrayList list = new ArrayList();
        int x = 1;
        int y = 2;
        int z = 3;
        if (x + y >= z) {
            System.out.printf("逻辑正确!");
        } else {
            throw new Exception("test方法有问题"); // 手动抛出一个异常
        }
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java的throws Exception 的相关文章

随机推荐

  • Maven 核心原理

    Maven 核心原理 标签 xff1a Java基础 Maven 是每一位Java工程师每天都会接触的工具 但据我所知其实很多人对Maven理解的并不深 只把它当做一个依赖管理工具 下载依赖 打包 Maven很多核心的功能反而没用上 最近重
  • JVM初探 -JVM内存模型

    JVM初探 JVM内存模型 标签 xff1a JVM JVM是每个Java开发每天都会接触到的东西 其相关知识也应该是每个人都要深入了解的 但接触了很多人发现 或了解片面或知识体系陈旧 因此最近抽时间研读了几本评价较高的JVM入门书籍 算是
  • 岁月划过生命线(2016 年终总结 -季度之星)

    岁月划过生命线 2016 年终总结 季度之星 标签 xff1a coder 年假结束 明天就要回到杭州 回到我fighting的战场 回首过去的2016 放纵了许多 但也收获了很多 n个项目 n个框架 第一个季度之星 头像第一次登上CSDN
  • 备忘录模式

    备忘录模式 标签 xff1a Java与设计模式 备忘录模式 在不破坏封装性的前提下 捕获一个对象的内部状态 or 拷贝 并在该对象之外保存这个状态 这样以后就可 将该对象恢复到原先保存的状态 图片来源 设计模式 可复用面向对象软件的基础
  • 迭代器模式

    迭代器模式 标签 xff1a Java与设计模式 迭代器模式 提供一种方法顺序访问聚合对象 如List Set 内的每个元素 而又不暴露聚合对象的内部实现 图片来源 设计模式 可复用面向对象软件的基础 模式实现 Iterator amp A
  • Ubuntu 更换 apt 镜像源

    Ubuntu 更换 apt 镜像源 apt 是 Ubuntu 系的包管理工具 xff0c 一般默认使用 ubuntu 的官方源 http archive ubuntu com 在国内下载的速度慢到让人想砸电脑 xff0c 可以更换为国内的镜
  • 简洁的Java8

    简洁的Java8 Stream 标签 xff1a Java基础 再次回到阿里 感觉变化好大 一是服务资源Docker化 最牛逼的阿里DB团队竟然把DB放到了容器中 还放到了线上环境 二是全集团Java8 记得离开时还是1 6 1 5 甚至还
  • 学习信号量 sem_init、sem_destroy、sem_post、sem_wait、sem_trywait、sem_getvalue

    学习信号量 sem init sem destroy sem post sem wait sem trywait sem getvalue 概要 xff1a 1 信号量使用场合 2 POSIX标准定义的信号量 2 1 sem init se
  • Intel Realsense windows安装与入门

    realsense400系列介绍 xff1a https www intelrealsense com stereo depth utm source 61 intelcom website amp utm medium 61 button
  • 到底什么是数据架构,如何管理,谁来负责?

    理解概念是理解数据管理的第一步 xff0c 很多概念我们知道 xff0c 但内涵却不清楚 xff0c 或者你以为清楚 xff0c 这类澄清概念的文章可以很好的帮到你 xff01 源于数据治理周周谈 xff0c 作者徐康 随着数据治理工作的深
  • linux下安装yum步骤

    一 安装yum前下介绍以下知识 1 yum介绍 Yum xff08 全称为 Yellow dog Updater Modified xff09 是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器 基于RPM包管
  • C++工程的CMakeLists.txt文件编写

    最简单的demo工程如下 xff1a include lt iostream gt include lt string gt int main int argc char argv std cout lt lt 34 hello world
  • windows/linux下Qt可执行程序打包,linux桌面双击运行程序sh脚本

    1 windows下Qt打包 windows下Qt的可执行文件打包简单的来说就是利用Qt自带依赖的打包工具windeployqt进行打包 xff0c 该工具存在Qt安装目录下 xff0c 执行命令为 xff1a windeployqt na
  • opengl、opengl es、webgl介绍与opengl开发入门

    1 OpenGL OpenGL xff08 英语 xff1a Open Graphics Library xff0c 译名 xff1a 开放图形库或者 开放式图形库 xff09 常用于CAD 虚拟现实 科学可视化程序和电子游戏开发 Open
  • linux代码检测工具valgrind之内存检测memcheck

    1 安装命令 xff1a sudo apt get install valgrind 安装成功如下 xff1a 检测版本命令 xff1a valgrind version 2 valgrind检测工具tool介绍 xff08 1 xff09
  • 摄影成像原理

    转载 xff1a https www sohu com a 191146657 690175 摄影成像原理 照相机是个什么样的仪器 xff1f 为什么可以把外界景物浓缩到一张小小的照片上 xff1f 观察手中的照相机 xff0c 就会感到这
  • cmake, make, CMakeLists.txt, Makefile简介

    文章目录 cmake make CMakeList txt Makefile之间的关系参考文章链接 xff1a 转自个人博客 在各种开源项目中 xff0c 经常会发现项目中除了代码源文件 xff0c 还包含了 CMakeList txt M
  • 相机畸变校正详解

    转 xff1a https blog csdn net humanking7 article details 45037239 1 摄像机成像原理简述 成像的过程实质上是几个坐标系的转换 首先空间中的一点由 世界坐标系 转换到 摄像机坐标系
  • java错误:需要《标识符》

    出现如下错误 xff1a 上面的第一 第二 xff0c 第三个错误的原因是 xff1a 没有加函数返回值类型void 最后一个原因是 xff1a 关键字static错误 总之 xff0c 出现标识符错误 xff0c 就是说程序里的不是缺少标
  • Java的throws Exception

    转 xff1a https www cnblogs com feichengwulai articles 3793261 html 1 终极解释 xff01 xff01 xff01 throws Exception放在方法后边 xff0c