try

nodejs调用WinRAR解压

荒凉一梦 提交于 2020-02-09 01:40:18
var cp = require ( "child_process" ) ; function unZIP ( winRarPath , password , zipFilePath , unZipFolder ) { return new Promise ( async ( resolve , reject ) => { cp . execFile ( winRarPath , [ "x" , "-inul" , `-p ${ password } ` , zipFilePath , unZipFolder ] , function ( err , stdout , stderr ) { if ( err ) { reject ( err ) } resolve ( stdout ) } ) } ) } async function main ( ) { try { let result = await unZIP ( "C:\\Program Files\\WinRAR\\WinRAR.exe" , '111111' , "D:\\test\\新建文本文档.rar" , "D:\\test" ) ; console . log ( '解压成功' ) } catch ( error ) { console . log ( error ) } } main ( ) 来源: CSDN

try...catch..finally

走远了吗. 提交于 2020-02-09 00:23:45
try:包含抛出异常的代码 catch:包含抛出异常时要执行的代码 finally:包含总是会执行的代码,如果没有异常产生,则在try块之后执行,如果处理了异常,就在catch块后执行,或者在未处理的异常上移到调用堆栈之前执行。 在try块的代码中出现异常后,发生的事件依次是: 1、try块在发生异常的地方中断程序的执行 2、如果有catch块,就检查该块是否匹配已抛出的异常类型。如果没有catch块,就执行finally块(如果没有catch块,就一定要有finally块) 3、如果有catch块,但它与已发生的异常类型不匹配,就检查是否有其他catch块 4、如果有catch块匹配已发生的异常类型,就执行它包含的代码,再执行finally块(如果有) 5、如果catch块都不匹配已发生的异常类型,就执行finally块(如果有) 来源: https://www.cnblogs.com/ahao214/p/4364137.html

JavaSE学习笔记(6)---异常

一个人想着一个人 提交于 2020-02-08 23:52:24
JavaSE学习笔记(6)---异常 ​ 软件程序在运行过程中,非常可能遇到问题,我们称之为异常,英文是:Exception,意思是例外。遇到这些例外情况,或者叫异常,我们怎么让写的程序做出合理的处理,安全的退出,而不至于程序崩溃呢? 1.异常产生的原因及使用原则 在 Java 中一个异常的产生,主要有如下三种原因: Java 内部错误发生异常,Java 虚拟机产生的异常。 编写的程序代码中的错误所产生的异常,例如空指针异常、数组越界异常等。这种异常称为未检査的异常,一般需要在某些类中集中处理这些异常。 通过 throw 语句手动生成的异常,这种异常称为检査的异常,一般用来告知该方法的调用者一些必要的信息。 Java 通过面向对象的方法来处理异常。在一个方法的运行过程中, 如果发生了异常,则这个方法会产生代表该异常的一个对象 ,并把它交给运行时的系统,运行时系统寻找相应的代码来处理这一异常。 我们把生成异常对象,并把它提交给运行时系统的过程称为 拋出(throw)异常 。运行时系统在方法的调用栈中查找,直到找到能够处理该类型异常的对象,这一个过程称为 捕获(catch)异常 。 Java 异常强制用户考虑程序的强健性和安全性。异常处理不应用来控制程序的正常流程,其主要作用是捕获程序在运行时发生的异常并进行相应处理。编写代码处理某个方法可能出现的异常,可遵循如下三个原则:

下面是对初学者数据库增删改查BaseDao的一个封装

試著忘記壹切 提交于 2020-02-08 23:40:08
大体步骤是: 1.将所有要读取的路径都写在db.properties的一个文件中,方便我们进行后续的维护 2.增删改查的sql语句写到专门的一个mapper.xml文件中,方便我们的使用 3.写一个只用来读取db.properties文件的工具类ReadPropertiesUtils 4.写一个只用来读取mapper.xml文件的工具类MapperUtils 5.导入五个jar包(等下我把jar包发到文件中) 6.写mysql的增删改的工具类MysqlCrudUtils 7.写数据库CURD的工具类JDBCUtils 8.写实体类 9.写一个增删改的测试类TestAddDeleteUpdate ------------------------------------------------------------------------------------ 下面是代码的呈现,按照步骤进行呈现 ------------------------------------------------------------------------------------------- 第一步 db.properties mapper_url=mapper.xmldriver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/lj

try catch finally

雨燕双飞 提交于 2020-02-08 23:15:03
try 块: 用于捕获异常。其后可接零个或多个catch块,如果没有catch块,则必须跟一个finally块。 catch 块: 用于处理try捕获到的异常。 finally 块: 无论是否捕获或处理异常,finally块里的语句都会被执行。当在try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行。在以下4种特殊情况下,finally块不会被执行: 1)在finally语句块中发生了异常。 2)在前面的代码中用了System.exit()退出程序。 3)程序所在的线程死亡。 4)关闭CPU。 3. try-catch-finally 规则( 异常处理语句的语法规则 ): 1) 必须在 try 之后添加 catch 或 finally 块。try 块后可同时接 catch 和 finally 块,但至少有一个块。 2) 必须遵循块顺序:若代码同时使用 catch 和 finally 块,则必须将 catch 块放在 try 块之后。 3) catch 块与相应的异常类的类型相关。 4) 一个 try 块可能有多个 catch 块。若如此,则执行第一个匹配块。即Java虚拟机会把实际抛出的异常对象依次和各个catch代码块声明的异常类型匹配,如果异常对象为某个异常类型或其子类的实例,就执行这个catch代码块,不会再执行其他的 catch代码块

【JVM虚拟机】(9)-- JVM是如何处理异常的

試著忘記壹切 提交于 2020-02-08 23:07:20
JVM是如何处理异常的 上篇博客我们简单说过 异常信息是存放在属性表集合中的Code属性表里 ,那么这篇博客就单独讲Code属性表中的exception_table。 在讲之前我们先思考两个问题? 1、为什么捕获异常会较大的性能消耗? 2、为什么finally中的代码会永远执行? 接下来会从JVM虚拟机的角度来解答这两个问题。 一、概念 1、JVM是如何捕获异常的? 1、编译而成的字节码中,每个方法都附带一个 异常表 。 2、异常表中每一个条目代表一个 异常处理器 3、触发异常时,JVM会遍历异常表,比较触发异常的字节码的索引值是否在异常处理器的 from指针到to指针 的范围内。 4、范围匹配后,会去比较 异常类型和异常处理器中的type是否相同 。 5、类型匹配后,会跳转到 target指针所指向的字节码 (catch代码块的开始位置) 6、如果没有匹配到异常处理器,会弹出当前方法对应的 Java栈帧 ,并对调用者重复上述操作。 2、什么是异常表? 1. 每个方法都附带一个异常表 2. 异常表中每一个条目, 就是一个异常处理器 异常表如下: 3、什么是异常处理器?其组成部分有哪些? 1、异常处理器由from指针、to指针、target指针,以及所捕获的异常类型所构成(type)。 2、这些指针的数值就是字节码的索引(bytecode index, bci),可以直接去定位字节码

C++处理异常技巧-try,catch,throw,finally

一个人想着一个人 提交于 2020-02-08 19:15:51
异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制。 也许我们已经使用过异常,但是你会是一种习惯吗,不要老是想着当我打开一个文件的时候才用异常判断一下,我知道对你来说你喜欢用return value或者是print error message来做,你想过这样做会导致Memory Leak,系统退出,代码重复/难读,垃圾一堆…..吗?现在的软件已经是n*365*24小时的运行了,软件的健壮已经是一个很要考虑的时候了。 自序: 对写程序来说异常真的是很重要,一个稳健的代码不是靠返回Error Message/return Value来解决的,可是往往我们从C走过来,习惯了这样的方式。 仅以本文献给今天将要来临的流星雨把,还好我能在今天白天把这写完,否则会是第4个通宵了;同时感谢Jeffrey大师,没有他的SEH理论这篇文章只能完成一半,而且所有SEH列子的构想都来自他的指导;另外要感谢Scott Meyers大师,我是看他的书长大的;还要感谢Adamc / Darwin / Julian ,当然还有Nick的Coffee 内容导读: (请打开文档结构图来读这篇文章。) 本文包括2个大的异常实现概念:C++的标准异常和SHE异常。 C++标准异常:也许我们了解过他,但你有考虑过,其实你根本不会使用,你不相信,那我问你:垃圾回收在C++中怎么实现?其实不需要实现,C+

try catch finally 中包含return的几种情况,及返回结果

若如初见. 提交于 2020-02-08 18:18:51
当当当,兴致勃勃的第二篇博客,散花~ 下面是正题(敲黑板) 第一种情况: 在try和catch中有return,finally中没有return ,且finally中没有对try或catch中要 return数据进行操作的代码,这种情况也是最好理解的。 public class Test { public static int num=1; public static void main(String[] args) throws ParseException { int result; result = num(); System.out.println(result); } private static int num() { try{ int b=4/0; return num = num+2; }catch(Exception e){ return num = num+3; }finally { System.out.println("不管你怎么样,我都是要执行"); } } } 输出内容为: 不管你怎么样,我都是要执行 4 原因 ,int b=4/0;发生了异常,直接进 入catch 的代码块中执行了return num = num+3;此时把返回的结果4。如果没有异常的话会执行try中的return,catch中的代码不会执行,但是无论怎样

C# try catch finally

帅比萌擦擦* 提交于 2020-02-08 18:16:56
前言 catch 和 finally 一起使用的常见方式是:在 try 块中获取并使用资源,在 catch 块中处理异常情况,并在 finally 块中释放资源。 Catch   catch 这将捕获任何发生的异常。   catch(Exception e) 这将捕获任何发生的异常。另外,还提供e参数,你可以在处理异常时使用e参数来获得有关异常的信息。   catch(Exception的派生类 e) 这将捕获派生类定义的异常,例如,我想捕获一个无效操作的异常,可以如下写: catch(InvalidOperationException e) { .... } 这样,如果try语句块中抛出的异常是InvalidOperationException,将转入该处执行,其他异常不处理。   catch可以有多个,也可以没有,每个catch可以处理一个特定的异常。.net按照你catch的顺序查找异常处理块,如果找到,则进行处理,如果找不到,则向上一层次抛出。如果没有上一层次,则向用户抛出,此时,如果你在调试,程序将中断运行,如果是部署的程序,将会中止。   如果没有catch块,异常总是向上层(如果有)抛出,或者中断程序运行。 Finally   finally可以没有,也可以只有一个。无论有没有发生异常,它总会在这个异常处理结构的最后运行。即使你在try块内用return返回了

C++ 关键字 (try-finally)

可紊 提交于 2020-02-08 18:15:36
try-finally语句是Microsoft对C和C++语言的扩展,它能使32位的目标程序在异常出现时,有效保证一些资源能够被及时清除,这些资源的清除任务可以包括例如内存的释放,文件的关闭,文件句柄的释放等等。try-finally语句特别适合这样的情况下使用,例如一个例程(函数)中,有几个地方需要检测一个错误,并且在错误出现时,函数可能提前返回。 #include <windows.h> #include <stdio.h> try-finally语句的语法与try-except很类似,稍有不同的是,__finally后面没有一个表达式,这是因为try- finally语句的作用不是用于异常处理,所以它不需要一个表达式来判断当前异常错误的种类。另外,与try-except语句类似,try- finally也可以是多层嵌套的,并且一个函数内可以有多个try-finally语句,不管它是嵌套的,或是平行的。当然,try-finally多层嵌套也可以是跨函数的。这里不一一列出示例,大家可以自己测试一番。 另外,对于上面示例程序的运行结果,是不是觉得有点意料之外呢?因为 __finally块中的put(“__finally块中”)语句也被执行了。是的,没错!这就是try-finally语句最具有魔幻能力的地方,即 “不管在何种情况下,在离开当前的作用域时