python try catch finally_Java try catch finally异常处理(Exception)_金雪锋的博客-程序员秘密

技术标签: python try catch finally  

1、Java Exceptions

执行Java代码时,可能会发生不同的错误异常:程序员编写的编码错误,由于输入错误引起的错误或其他不可预见的情况。

发生错误时,Java通常会停止并生成错误消息。 技术术语是:Java将引发异常(引发错误)。

2、Java try  catch

try语句允许定义要执行的错误代码块。

如果在try块中发生错误,则catch语句允许定义要执行的代码块。

try和catch关键字成对出现:

语法try {

//  要尝试的代码块

}

catch(Exception e) {

//  处理错误的代码块

}

考虑以下示例:

这将产生一个错误,因为myNumbers [10]不存在。输出将是这样的:public class Main{

public static void main(String[ ] args){

int[] myNumbers = {1, 2, 3};

System.out.println(myNumbers[8]); // 不存在会报错!

}

}

如果发生错误,我们可以使用try catch来捕获错误并执行一些代码来处理该错误:

例如:public class Main{

public static void main(String[ ] args){

try {

int[] myNumbers = {1, 2, 3};

System.out.println(myNumbers[8]);

} catch (Exception e) {

System.out.println("输出异常信息等其它操作");

}

}

}

3、finally

finally语句可以在try catch之后执行代码,而不管是否在try代码中出现异常:

例如:public class Main{

public static void main(String[] args){

try {

int[] myNumbers = {1, 2, 3};

System.out.println(myNumbers[8]);

} catch (Exception e) {

System.out.println("输出异常信息等其它操作");

} finally {

System.out.println("执行资源释放等相关代码");

}

}

}

4、throw关键字

throw语句用于创建抛出自定义错误。

throw语句与异常类型一起使用。 Java中提供了许多异常类型:ArithmeticException,FileNotFoundException,ArrayIndexOutOfBoundsException,SecurityException等:

例如:public class Main{

static void checkValue(int x){

if (x < 0) {

throw new ArithmeticException("error is x < 0");

}

else {

System.out.println("x > 0");

}

}

public static void main(String[] args){

checkValue(15);

}

}public class DemoThrow{

public static void main(String[] args){

int a = DemoThrow.div(4,0);

System.out.println(a);

}

public static int div(int a,int b){

if(b==0)

throw new ArithmeticException("异常信息:除数不能为0");//抛出具体问题,编译时不检测

return a/b;

}

}

5、throws 关键字

throws关键字说明方法可能抛出的异常类型。

Java中有许多可用的异常类型:ArithmeticException,ClassNotFoundException,ArrayIndexOutOfBoundsException,SecurityException等。

例如:publicclassExample{

publicstaticvoidmain(String[] args){

try {

int result = divide(4,2);

System.out.println(result);

} catch (Exception e) {

e.printStackTrace();

}

}

publicstaticintdivide(int x,int y)throws Exception

{

int result = x/y;

return result;

}

}

throw和throws之间的区别:throwthrows

用于引发方法的异常用于指示方法可能抛出的异常类型

不能抛出多个异常可以声明多个异常

throw

throws

用于引发方法的异常

用于指示方法可能抛出的异常类型

不能抛出多个异常

可以声明多个异常

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34837898/article/details/114392472

智能推荐

通用c程序Makefile_dhsdh56756的博客-程序员秘密

#一个通用的Makefile,可以在linux各大平台下通用编译c程序,这个版本在gcc平台下实现,如需要课更改第二部的gcc,也可以在第三部添加所需要的库,如有错误,欢迎即使纠正#1.遵循可移植操作系统接口,即应用程序接口(API)+可移植性c源码DSEF=_D_POSIX_SOURCE#2.这里以gcc平台下编译为例,如需要可改为g++,arm-linux-gcc和mips等...

MFC下托盘图标的实现和托盘菜单_whitesilt的博客-程序员秘密

转载自:http://blog.csdn.net/longsir2008/article/details/6304130对话框头文件XXXDlg.h:1.添加成员变量NOTIFYICONDATA m_nid;2.添加tray消息响应函数的声明afx_msg LRESULT OnTrayNotify(WPARAM wParam, LPARAM lParam

BASE64对字符串的加密(解密)方法_iteye_7324的博客-程序员秘密

// 将 s 进行 BASE64 编码    static String getBASE64(String s) {    if (s == null) return null;    return (new sun.misc.BASE64Encoder()).encode( s.getBytes() );   }     // 将 BA...

字节跳动软件测试岗,前两面过了,第三面被面试官吊打,结局我哭了_TEST_二 黑的博客-程序员秘密

阎王易见,小鬼难缠。我一直相信这个世界上好人居多,但是也没想到自己也会在阴沟里翻船。我感觉自己被字节跳动的HR坑了。在这里,我只想告诫大家,offer一定要拿到自己的手里才是真的,口头offer都是不牢靠的,希望大家可以从我这里吸取教训。去年字节跳动连放大招,一直都有消息说字节跳动又招人了!到处都能看到字节跳动HR发的内推码和招人信息。在大环境的刷屏下,我看了一下招聘信息中的测试人员需求,还算比较多,又受大厂光环影响,我就投了简历。但是,我没想到会发生这样的事情。如题,我感觉自己被HR坑了。......

UE4引擎源码:源码整体文件结构_阳澄居士的博客-程序员秘密_ue4引擎代码

首先根据目录文件夹整体看一下结构,版本4.2Binaries里面是一些配置文件和第三方的配置文件,全部是xml,从这可以看到虚幻4都用了什么第三方工具,有各个平台的图形库,还有声音库,物理库(PhysX3),VR,图形显卡,Mono,,等等Build各个平台编译需要的,有一些批处理和xml文件等等有安卓,IOS,TVOS,HTML5等等Config各个平台的参数设置Documentation文档Extras额外的第三方工具有Maya动画Ragging工具...

随便推点

Java判断数据类型instanceof关键字_卫三123的博客-程序员秘密_java判断数据类型关键字

Java判断数据类型使用instanceof关键字public class Test1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); validate(sc.nextLine()); } public static &lt;T&gt; void validate(T value){ if (value instanceo

centos8安装python3.6_Centos下安装Python3.6_扇贝君的博客-程序员秘密

一、安装python3.6.11、安装依赖环境#yum install readline-devel ##必须安装否则会出现python3编译器中不能使用退格键和方向键2、下载安装包并解压[[email protected] ~]# wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz ##下载安装包[[email protected] ~]# ta...

ScheduledExecutorService定时周期执行指定的任务_劝君更尽一杯酒的博客-程序员秘密

一:简单说明ScheduleExecutorService接口中有四个重要的方法,其中scheduleAtFixedRate和scheduleWithFixedDelay在实现定时程序时比较方便。下面是该接口的原型定义java.util.concurrent.ScheduleExecutorService extends ExecutorService extends 

Mybatis-helloWorld_JackWang的博客-程序员秘密

文章目录第一个Mybatis配置配置准备相关环境依赖配置过程程序结果第一个Mybatis配置配置准备相关环境依赖数据库准备新建一个数据库座测试用,在新建的数据库里先创建一张表,我们在表里创建几个字段,存放一两条数据。配置过程应该先导入相关jar包啊!!!先写一个bean类,写好get和set方法,因为以后要输出测试所以把toString方法也写上。package com.atahpu.mybatis;/** * @Author : JackWang * @Date

微服务之SpringBoot1.2 SpringBoot整合Thymeleaf以及Mybatis_MrBack的博客-程序员秘密

本章内容:1、SpringBoot整合Thymeleaf1)。首先pom.xml中Thymeleaf的版本要3.x以上,否则对html要求标签严格一些,造成不便2)Thymeleaf使用:取值:th:text="${key}"取值 th:value="${key}"将值取回放入inputth:text="${#strings.siEmpty(key)}" #代表内置对象,总...

苹果iOS设备Identifier与名称对应大全(swift源码)(2008~2021)_airzhangfish的博客-程序员秘密

因为开发需要,重新整理了下这块的代码。因为比较通用。所以发出来给需要的人,复制可用。其中包含了iphone ,ipad,apple watch ,itouch,模拟器等的识别。如果有不全的话请留言。更新日期为2018年11月初。预估2019苹果新品发布之前均可使用。 public static var modelName: String { var systemIn...

推荐文章

热门文章

相关标签