catch

Java异常处理(try、catch、finally使用)

余生颓废 提交于 2020-11-03 11:09:58
直接上代码,先贴下面测试需要调用的方法: public static void enterTryMethod() { System.out.println("enter after try field"); } public static void enterExceptionMethod() { System.out.println("enter catch field"); } public static void enterFinallyMethod() { System.out.println("enter finally method"); } 1. 抛出Exception,没有finally,当catch遇上return public static int catchTest() { int res = 0; try { res = 10 / 0; // 抛出Exception,后续处理被拒绝 enterTryMethod(); return res; // Exception已经抛出,没有获得被执行的机会 } catch (Exception e) { enterExceptionMethod(); return 1; // Exception抛出,获得了调用方法并返回方法值的机会 } } 后台输出结果: enter catch field 1 2.

try catch finally 执行顺序面试题总结

故事扮演 提交于 2020-03-04 15:47:28
在网上看到一些异常处理的面试题,试着总结一下,先看下面代码,把这个方法在main中进行调用打印返回结果,看看结果输出什么。 public static int testBasic(){ int i = 1; try{ i++; System.out.println("try block, i = "+i); }catch(Exception e){ i ++; System.out.println("catch block i = "+i); }finally{ i = 10; System.out.println("finally block i = "+i); } return i; } 没错,会按照顺序执行,先执行try内代码段,没有异常的话进入finally,最后返回,那么输出如下: try block, i = 2 finally block i = 10 main test i = 10 这个没有问题,如果我们把return语句放入try catch里又会怎么样呢 public static int testBasic(){ int i = 1; try{ i++; System.out.println("try block, i = "+i); return i; }catch(Exception e){ i ++; System.out.println("catch

thinkphp获取mysql错误

人走茶凉 提交于 2020-03-01 21:42:55
最近用thinkphp时发现无法捕获mysql的错误信息,例如向表中插入一个主键 重复的数据时,程序便卡在那条语句上,就像下面这样 :( SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1' for key 'PRIMARY' 错误位置 FILE: D:\*****\ThinkPHP\Library\Think\Db\Driver.class.php  LINE: 226 TRACE #0 D:\*****\ThinkPHP\Library\Think\Db\Driver.class.php(226): PDOStatement->execute() 在代码中 使用try catch 无效,最后修改 Driver.class.php文件 中169行和226行的 $result = $this->PDOStatement->execute(); 修改为 try { //lighthouse $result = $this -> PDOStatement ->execute() ; } catch (\PDOException $e ) { echo 'queryStr=' . $this -> queryStr . '<br/>' ; print "Error: " . $e -

C#异常处理

笑着哭i 提交于 2020-01-23 08:25:43
C# 异常处理 异常处理 异常是程序执行过程中产生的问题。C# 异常是对程序运行过程中出现的额外情况的一种反馈,例如除数为零时。 异常提供了一种将控制权从程序的一个部分转移到另一个部分的方式。C# 异常处理有四个关键词: try , catch , finally , throw 。 try :try 块标识代码块的哪些特定的异常将被激活。它的后面是一个或多个 catch 块。 catch :一个用于捕获异常的程序段,将 catch 放在你希望能处理这个异常的地方。“catch”这个关键字标志着异常的捕获。 finally :finally 保证了无论是否有异常抛出,此代码段中的程序都会被执行。例如,如果你打开了一个文件,那么不管是否发生了异常,文件都需要关闭。 throw :当出现问题时,程序会抛出异常。这项工作是通过使用 throw 来实现的。 语法 假设一个代码块产生了一个异常,通过使用 try 和 catch 的组合可以捕获这个异常。一个 try/catch 代码块需要放置在可能会产生异常的代码段周围。try/catch 代码段就像是保护代码,它的使用语法如下: try { //引起异常的语句 } catch ( ExceptionName e1 ) { // 错误处理代码 } catch ( ExceptionName e2 ) { //错误处理代码 } catch (

PHP 异常处理

天大地大妈咪最大 提交于 2019-12-22 18:56:39
PHP 异常处理 异常(Exception)用于在指定的错误发生时改变脚本的正常流程。 什么是异常? PHP 5 提供了一种新的面向对象的错误处理方法。 异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。 当异常被触发时,通常会发生: 当前代码状态被保存 代码执行被切换到预定义的异常处理器函数 根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本 我们将展示不同的错误处理方法: 异常的基本使用 创建自定义的异常处理器 多个异常 重新抛出异常 设置顶层异常处理器 异常的基本使用 当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 "catch" 代码块。 如果异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 "Uncaught Exception" (未捕获异常)的错误消息。 让我们尝试抛出一个异常,同时不去捕获它: <?php //create function with an exception function checkNum($number) { if($number>1) { throw new Exception("Value must be 1 or below"); }

贝尔的技术博客 cnbeir@163.com PHP中的错误处理、异常处理机制

这一生的挚爱 提交于 2019-12-06 17:23:44
在编写php程序时,错误处理是一个重要的部分。如果程序中缺少错误检测代码,那么看上去很不专业,也为安全风险敞开了大门 例: <?php $a = fopen('test.txt','r'); //这里并没有对文件进行判断就打开了,如果文件不存在就会报错 ?> 那么正确的写法应该如下: <?php if(file_exists('test.txt')){ $f=fopen('test.txt','r'); //使用完后关闭 fclose($f); } ?> 一、PHP错误处理的三种方式 A、简单的die()语句; 等价于exit(); 例: if(!file_exists('aa.txt')){ die('文件不存在'); } else { //执行操作 } //如果上面die()被触发,那么这里echo接不被执行 echo 'ok'; 简洁写法: file_exits('aaa.txt') or die('文件不存在'); echo 'ok'; B、自定义错误和错误触发器 1、错误处理器(自定义错误,一般用于语法错误处理) 创建自定义错误函数(处理器),该函数必须有能力处理至少两个参数(error_level和errormessage),但是可以接受最多五个参数(error_file、error_line、error_context) 语法: function error

揭开JVM所看到的try/catch/finally

风格不统一 提交于 2019-12-04 08:02:58
#揭开JVM所看到的try/catch/finally 最近有一位朋友发了一段代码给我,这个方法很简单,具体内容大致如下: int num = 5000000;//500万 long begin = System.currentTimeMillis(); for(int i=0; i<num; i++){ try{ //do something }catch(Exception e){ } } long end = System.currentTimeMillis(); System.out.println("==============使用时间:" + (end - begin) + " 毫秒"); 上面代码可以看到是通过执行该循环体所消耗的时间,通过和把 try/cache 注释掉进行对比,最后得到的结果时间比较随机,执行的耗时和 try/cache 没有必然的联系,那 try/cache 究竟会不会影响代码的执行效率呢?从java语言的源码上看貌似多执行了一些指令,实际上是怎么样的呢?下面我分几个场景来分析一下jvm对 try/cache 的处理过程。 ##单层的try/catch 下面是一个只有单层的 try/catch 代码块 public int test(int a,int b){ try{ return a+b; }catch (Exception e){

PHP 异常处理 throw new exception

匿名 (未验证) 提交于 2019-12-02 22:11:45
当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 "catch" 代码块。 如果异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 "Uncaught Exception" (未捕获异常)的错误消息。 Try, throw 和 catch(通常跑出错误,一般会跟try catch配合使用) --------------------- 正确的处理程序应当包括: Try - 使用异常的函数应该位于 "try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。 Throw - 这里规定如何触发异常。每一个 "throw" 必须对应至少一个 "catch" Catch - "catch" 代码块会捕获异常,并创建一个包含异常信息的对象 让我们触发一个异常: <?php //创建可抛出一个异常的函数 function checkNum($number) { if($number>1) { throw new Exception("Value must be 1 or below"); } return true; } //在 "try" 代码块中触发异常 try { checkNum(2); //If the exception is

PHP中的错误处理、异常处理机制详解

拜拜、爱过 提交于 2019-11-29 02:13:46
转自:http://www.cnblogs.com/52php/p/5665495.html 在编写PHP程序时,错误处理是一个重要的部分。如果程序中缺少错误检测代码,那么看上去很不专业,也为安全风险敞开了大门 例: 1 2 3 4 <?php $a = fopen ( 'test.txt' , 'r' ); //这里并没有对文件进行判断就打开了,如果文件不存在就会报错 ?> 那么正确的写法应该如下: 1 2 3 4 5 6 7 <?php if ( file_exists ( 'test.txt' )) { $f = fopen ( 'test.txt' , 'r' ); // 使用完后关闭 fclose( $f ); } ?> 一、PHP错误处理的三种方式 A、简单的die()语句; 等价于exit(); 例: 1 2 3 4 5 6 7 if (! file_exists ( 'aa.txt' )) { die ( '文件不存在' ); } else { // 执行操作 } // 如果上面die()被触发,那么这里echo接不被执行 echo 'ok' ; 简洁写法: 1 2 file_exits( 'aaa.txt' ) or die ( '文件不存在' ); echo 'ok' ; B、自定义错误和错误触发器 1、错误处理器(自定义错误,一般用于语法错误处理)

PHP中的错误处理、异常处理机制

孤街浪徒 提交于 2019-11-29 02:13:20
PHP中的错误处理、异常处理机制 在编写php程序时,错误处理是一个重要的部分。如果程序中缺少错误检测代码,那么看上去很不专业,也为安全风险敞开了大门 例: <?php $a = fopen('test.txt','r'); //这里并没有对文件进行判断就打开了,如果文件不存在就会报错 ?> 那么正确的写法应该如下: <?php if(file_exists('test.txt')){ $f=fopen('test.txt','r'); //使用完后关闭 fclose($f); } ?> 一、PHP错误处理的三种方式 A、简单的die()语句; 等价于exit(); 例: if(!file_exists('aa.txt')){ die('文件不存在'); } else { //执行操作 } //如果上面die()被触发,那么这里echo接不被执行 echo 'ok'; 简洁写法: file_exits('aaa.txt') or die('文件不存在'); echo 'ok'; B、自定义错误和错误触发器 1、错误处理器(自定义错误,一般用于语法错误处理) 创建自定义错误函数(处理器),该函数必须有能力处理至少两个参数(error_level和errormessage),但是可以接受最多五个参数(error_file、error_line、error_context) 语法: