异常处理

throw与throws抛出异常的区别

点点圈 提交于 2020-02-02 11:35:13
  throws抛出异常出现在 public void function() throws Exception{};   throw抛出异常是在方法内 比如: public int function(int a){ if(a==0){ throw new Exception("传入参数为0")       } return 0; }   比如就是当这个函数传入的参数不能为0时,一旦传入这个值为0的参数就会引发这个异常,并实现异常处理。   也就是说throws抛出异常,这个异常不一定会出现,只有当程序出现某种错误时,比如除零异常,数组下表越界异常等等,才会引发异常。而throw是当程序运行到这段时,一定会出现异常,并调用异常处理,就像在上面例子中,传入参数为0时就会产生这个异常。在百度上看到有位朋友的回答很确切,throws是“抛弃”,一旦出现异常就将其抛到调用该方法的地方去,让其他人解决这个异常,throw是“产生”,一旦出现异常就处理它。 来源: https://www.cnblogs.com/hamihua/p/6552327.html

python学习笔记之异常处理

非 Y 不嫁゛ 提交于 2020-02-02 05:42:29
目录 异常处理 异常处理 x = 10 try: y = int(input('数字:')) # 10 y += 10 # y = y + 10 except Exception as e: print(f'error: \033[1;35m {e} \033[0m!') finally: # 无论包不报错,都会执行finally下面的代码 print(1) 作业 使用while循环输出1 2 3 4 5 6 8 9 求1-100的所有数的和 输出 1-100 内的所有奇数 输出 1-100 内的所有偶数 求1-2+3-4+5 ... 99的所有数的和 用户登陆(三次机会重试) 猜年龄游戏 要求: 允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出 猜年龄游戏升级版(选做) 要求: 允许用户最多尝试3次,每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序,如何猜对了,就直接退出 for循环打印99乘法表 for循环打印金字塔 # 题目1:使用while循环输出1 2 3 4 5 6 8 9 i=0 while i<10: i += 1 if(i==7): continue print(i) # 题目2:求1-100的所有数的和 s=0 for i in range(1,101)

七、Java中的异常处理

吃可爱长大的小学妹 提交于 2020-02-01 16:06:20
1.什么是异常 在日常编写程序的过程中,由于疏忽或者逻辑错误时常会导致程序运行时出现这样或那样的错误导致程序非正常终止。其实这就是程序发生了异常,我们举几个常见的例子: (1)数组越界异常 public static void main(String[] args) { //定义数组长度为3,索引[0,2] Integer[] arrays = new Integer[3]; //在索引4处添加元素 arrays[4] = 45; } 控制台报错: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at com.java.day01.Demo1.main(Demo1.java:10) (2)格式异常 public static void main(String[] args) { //把一个含有字母的字符串转换为整数 Integer integer = Integer.valueOf("123qwe"); } 控制台报错: Exception in thread "main" java.lang.NumberFormatException: For input string: "123qwe" at java.lang.NumberFormatException.forInputString

第十七单元 异常

不问归期 提交于 2020-02-01 09:31:18
一、填空题(30道) 1.Java程序运行过程中所发生的异常事件可分为两类,分别是( 错误 )和( 异常 )。 2.在处理异常时,可将异常看成两类,分别是( 运行时异常 )和( 非运行时异常 )。 3.在java的异常体系中,最大父类是( throwable )。 4.将有可能产生错误的代码放在监视代码块( try... )中。 5.异常处理中有些代码一定要执行,可以选择放在( finally... )块中。 6.程序发生异常后进入到异常处理块( catch.. )中。 7.java.io.IOException属于( IO )异常。 8.ArithmeticException属于( 算术 )异常。 9.ArrayIndexOutOfBoundsException属于( 越界 )异常,含义是( 数组下标越界异常 )。NullPointerException属于( 空指针 )异常,含义是( 指针没有指向任何对象 )。 10.FileNotFoundException属于( 文档 )异常,含义是( 要访问的文件不存在 )。 11.ClassCastException属于( 类型转换 )异常,含义是( 两种类型不能直接转换 )。 12.异常在处理过程中用( throws )关键字抛出异常对象。 13.异常处理语法中只有( try )块是必须的,( catch )块和( finally

PLSQL——05、异常处理

瘦欲@ 提交于 2020-02-01 00:10:22
作用: 相当于对错误作了二次处理,可以让用户看懂。 如果程序出现错误回出现回滚,加上异常处理后不会对本程序的修改回滚。 可以任何时候设置报错,从而达到中断目的。 如果程序出现错误,可以使其报错的同时完成程序其他的语句。(PL/SQL嵌套) 系统预定义异常(有名字的错误代码) TOO_MANY_ROWS : SELECT INTO返回多行 INVALID_CURSOR :非法指针操作(关闭已经关闭的游标) ZERO_DIVIDE :除数等于零 DUP_VAL_ON_INDEX :违反唯一性约束 ACCESS_INTO_NULL: 未定义对象 CASE_NOT_FOUND: CASE 中若未包含相应的 WHEN ,并且没有设置 ELSE 时 COLLECTION_IS_NULL: 集合元素未初始化 CURSER_ALREADY_OPEN: 游标已经打开 DUP_VAL_ON_INDEX: 唯一索引对应的列上有重复的值 INVALID_NUMBER: 内嵌的 SQL 语句不能将字符转换为数字 NO_DATA_FOUND: 使用 select into 未返回行,或应用索引表未初始化的元素时 SUBSCRIPT_BEYOND_COUNT:元素下标超过嵌套表或 VARRAY 的最大值 SUBSCRIPT_OUTSIDE_LIMIT: 使用嵌套表或 VARRAY 时,将下标指定为负数

python笔记——调试和异常处理

天涯浪子 提交于 2020-01-31 19:27:45
type()函数 type()函数既可以返回一个对象的类型,又可以创建出新的类型。 type('类名',(继承的父类),dict(方法绑定函数)) 使用type()函数创建的类和直接写class完全一样,因为python解释器遇到class定义时,仅仅是扫描以下class定义的语法,然后调用type()函数创建出class。 metaclass() 当我们定义了类之后,可以根据这个类创建出实例,所以: 先定义metaclass,就可以创建类,最后创建实例。 错误处理 try try...excepy...finally 流程为:try产生错误跳转到except,except执行结束后如果又finally则跳转到finally。 调试 assert def foo(s): n = int(s) assert n != 0, 'n is zero!' return 10 / n def main(): foo('0') assert表示:如果n != 0 得结果为true,则程序继续进行 如果断言失败,assert语句本身就会抛出AssertionError错误,内容为表达式后的'n is zero!' python解释器可以使用-O参数来关闭assert logging import logging logging.basicConfig(level=logging.INFO)

Python学习笔记-04

╄→尐↘猪︶ㄣ 提交于 2020-01-31 04:16:43
第四章 程序的控制结构 学习要点: 程序的三种控制结构 程序的分支结构:单分支结构、二分支结构、多分支结构 程序的循环结构:遍历循环、无限循环、break和continue循环控制 程序的异常处理:try-except 4.1 程序的三种控制结构 4.1.1 程序流程图   程序流程图时一种表达程序控制结构的方式,主要用于关键部分的程序分析和过程描述,由一系列图形、流程线和文字说明等组成。包括七种元素: 起止框:表示程序逻辑的开始或结束 判断框:表示一个判断条件,并根据判断结果选择不同的执行路径 处理框:表示一组处理过程,对应于顺序执行的程序逻辑; 输入输出框:表示程序中的数据输入或结果输出; 注释框:表示程序的注释 流向线:表示程序的控制流,以带箭头的直线或曲线表达程序的执行路径 连接点:表示多个程序流程图的连接方式,常用于将多个较小流程图组织成较大流程图。 描述一个计算问题的程序过程包括:IPO、流程图、伪代码和程序代码 4.1.2 程序控制结构基础   程序由三种基本结构组成:顺序结构,分支结构和循环结构。   顺序结构是程序按照线性顺序依次执行的一种运行方式   分支结构是程序根据条件判断结果而选择不同向前执行路径的一种运行方式。   循环结构是程序根据条件判断结果向后执行的一种运行方式 4.1.3 程序控制结构扩展 在分支结构原理的基础上,python增加了异常处理

Lua异常处理

为君一笑 提交于 2020-01-31 02:21:37
Lua代码运行过程中,可能会出现异常状态,比如非法地址访问、遇到未定义符号、或者断言失败等,由于异常出现的地方不定,所以我们需要用一些方法来获取异常信息,找到出现异常的原因。 在C语言代码中处理Lua脚本运行产生的异常: 要能在发生异常后可以在C语言代码中获取到异常信息,就必须通过 lua_pcall ,或者 lua_pcallk 函数来运行Lua代码,如果直接使用 lua_call 函数来运行Lua代码,当发生异常后,Lua解析器不会保留异常信息,而是会调用系统函数 abort 导致整个程序运行中止。 对于 lua_pcall 、 lua_pcallk 这两个函数,前者实际上是一个宏,是对后者做了一下简单封装后的结果,后者用得不多,这里不再做介绍。故名思意, lua_pcall 函数是以保护模式运行 Lua 代码,当 Lua 代码中遇到异常时, lua_pcall 函数不会直接调用 abort 函数导致程序卡死,而是会进行异常处理,然后恢复运行 Lua 代码之前的状态,然后返回。 在调用 lua_pcall 函数前,可以通过 lua_pushcfunction 函数将自己的异常处理函数压栈,然后通过 lua_pcall 函数的参数指定异常处理函数在栈中所在的位置,然后当 Lua 脚本运行出错时,这个自定义的异常处理函数会被调用,这时候可以继续在自定义异常处理函数中调用 luaL

Java 异常处理的 9 个最佳实践

淺唱寂寞╮ 提交于 2020-01-30 07:18:49
无论你是新手还是资深程序员,复习下异常处理的实践总是一件好事,因为这能确保你与你的团队在遇到问题时能够处理得了它。 在 Java 中处理异常并不是一件易事。新手觉得处理异常难以理解,甚至是资深开发者也会花上好几个小时来讨论是应该抛出抛异常还是处理异常。这就是为何大多数开发团队都拥有一套自己的异常处理规范。如果你初进团队,你也许会发现这些规范和你曾使用的规范大相径庭。 尽管如此,这里还是有一些被大多数团队所遵循的最佳实践准则。以下9个最重要的实践方法能帮助你开始进行异常处理,或提高你的异常处理水平。 1、在 Finally 中清理资源或使用 Try-With-Resource 语句 在实际开发中会经常遇到在 try 中使用资源的情况,比如一个 InputStream ,在使用后你需要关闭它。在这种情况下,一个常见的错误是 没有在 try 的尾部关闭资源 。 public void doNotCloseResourceInTry ( ) { FileInputStream inputStream = null ; try { File file = new File ( "./tmp.txt" ) ; inputStream = new FileInputStream ( file ) ; // use the inputStream to read a file // do NOT

14、python异常处理及断言

家住魔仙堡 提交于 2020-01-30 06:06:55
前言:本文主要介绍python中异常的处理及断言,包括异常类型、异常捕获、主动跑出异常和断言。 一、异常类型介绍   什么是异常?异常即是一个事件,该事件会在程序执行过程中发生,会影响程序的正常执行,一般情况下,在python无法正常处理程序时就会发生一个异常。 异常是python对象,表示一个错误。当python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。 在python 中,所有的异常都是派生自BaseException类的实例,下面介绍几种常见几种异常: BaseException : 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) GeneratorExit 生成器(generator)发生异常来通知退出 Exception 常规错误的基类( 重点掌握 ,一般因代码引起的错误,是我们可以控制的,其他异常基类我们了解即可) 常见的Exception类异常类型举例如下: AttributeError:属性错误,特性引用和赋值失败时会引发属性错误 NameError:试图访问的变量名不存在 SyntaxError:语法错误,代码形式错误 IOError:一般常见于打开不存在文件时会引发IOError错误,也可以解理为输出输入错误 KeyError:使用了映射中不存在的关键字(键)时引发的关键字错误