try

python 错误与异常

时光总嘲笑我的痴心妄想 提交于 2020-01-07 21:41:08
try: 1/0 except (ZeroDivisionError,NameError) as e: print("这里给出可能的出错信息",e) else: print("如果try成功,执持这里") finally: print("最后执行的内容,不管是否出现异常,都会执行的语句") try: 1/2 except (ZeroDivisionError,NameError) as e: print("xxx",e) else: print("如果try成功,执持这里") finally: print("最后执行的内容,不管是否出现异常,都会执行的语句") try: 1/0 except Exception as e: print("这果给出详细的出错信息",e) else: print("如果try成功,执持这里") finally: print("最后执行的内容,不管是否出现异常,都会执行的语句") 处理流程 来源: https://www.cnblogs.com/tingxin/p/12163794.html

Zookeeper实现分布式锁

社会主义新天地 提交于 2020-01-07 17:06:39
几天分析了一下三种分布式锁的实现,但是没有利用zookeeper实现一个分布式锁,因为感觉基于Zookeeper实现分布式锁还是稍微复杂的,同时也需要使用Watcher机制,所以就单独搞一篇Zookeeper实现的分布式锁。 首先,第一种实现。我们可以利用Zookeeper不能重复创建一个节点的特性来实现一个分布式锁,这看起来和redis实现分布式锁很像。但是也是有差异的,后面会详细分析。 主要流程图如下: 上面的流程很简单: 查看目标Node是否已经创建,已经创建,那么等待锁。 如果未创建,创建一个瞬时Node,表示已经占有锁。 如果创建失败,那么证明锁已经被其他线程占有了,那么同样等待锁。 当释放锁,或者当前Session超时的时候,节点被删除,唤醒之前等待锁的线程去争抢锁。 上面是一个完整的流程,简单的代码实现如下: package com.codertom.params.engine; import com.google.common.base.Strings; import org.apache.zookeeper.*; import java.io.IOException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java

try/catch/finally 语句

我们两清 提交于 2020-01-07 15:47:38
定义和用法 try/catch/finally 语句用于处理代码中可能出现的错误信息。 错误可能是语法错误,通常是程序员造成的编码错误或错别字。也 可能是拼写错误或语言中缺少的功能(可能由于浏览器差异)。 try 语句允许我们定义在执行时进行错误测试的代码块。 catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。 finally 语句在 try 和 catch 之后无论有无异常都会执行。 注意: catch 和 finally 语句都是可选的,但你在使用 try 语句时必须至少使用一个。 提示: 当错误发生时, JavaScript 会停止执行,并生成一个错误信息。使用 throw 语句 来创建自定义消息(抛出异常)。如果你将 throw 和 try 、 catch 一起使用,就可以控制程序输出的错误信息。 let x = [1,12,6,'']; x.map(v => { try { if(v < 5) throw "太小"; if(v > 10) throw "太大"; if(isNaN(v)) throw "不是一个数字"; if(v == "") throw "为空" } catch(err) { console.log('catch '+v) } finally { console.log('语句在 try 和 catch 之后无论有无异常都会执行'

Java学习之==> 多线程

末鹿安然 提交于 2020-01-07 14:13:20
一、创建线程的三种方式 第一种 public class App { public static void main(String[] args) { Thread thread = new Thread(() -> { while (true) { System.out.println("testThread"); } }); thread.start(); } } new Thread 创建线程 第二种 public class App { public static void main(String[] args) { Thread thread = new Thread(new Runnable() { @Override public void run() { while (true) { System.out.println("testThread"); } } }); thread.start(); } } new Thread 创建线程 第二种和第一种本质上是同一种方法,只不过第一种方法用的是 lambda表达式的写法。 第三种 public class App extends Thread{ public static void main(String[] args) { App app = new App(); app.run(); } @Override

TransactionScope事务操作

↘锁芯ラ 提交于 2020-01-07 13:05:41
using (TransactionScope trans = new TransactionScope()) { try { InsertUserBase(); //它插入不成功,自己回滚 UserInfos userInfo = new UserInfos { UserID = "1", RealName = "zzl", }; db.UserInfos.InsertOnSubmit(userInfo); db.SubmitChanges(); trans.Complete(); } catch (Exception) { // throw; } finally { trans.Dispose(); } } #endregion static bool InsertUserBase() { bool flag; try { UserBases userbase = new UserBases { UserID = "0005", Name = "zzl", CreateDate = DateTime.Now, UpdateDate = DateTime.Now, }; db.UserBases.InsertOnSubmit(userbase); db.SubmitChanges(); flag = true; } catch (Exception) { throw; }

java电子签章实现

落花浮王杯 提交于 2020-01-07 08:14:37
项目源码路径:https://github.com/Syske/learning-dome-code.git 前言 最近应客户需求,需要实现电子签章功能,公章部分用的时金格科技的接口,个人人签字需要自己实现,公章部分我们就不说了,商业接口做的都比较成熟,也有示例代码,所以今天着重说的就是个人签字部分。 参照公章部分的实现方式,同时也参考了很多博客 1 ,查了很多资料,也搞清楚了电子签章的基本流程: 因为我要实现的功能很简单就是个人签章,而且我的签名是手写的,所以创建签名部分就省略了,核心部分就是确定签名坐标和签名,确定坐标部分我根据自己查找的资料,实现了根据关键字确定坐标,因为确定坐标很麻烦,也不够灵活。 对于创建签名我有一个思路,可以将创建签名作为一个远程服务部署,然后远程调用,然后检验,返回签名;当然你也可以通过这种方式生成公章,但是因为没有经过公正机构认证,这种方式生成的公章其实是不具法律效应的,好了下面直接上代码吧。 创建签名密钥 这个密钥在pdf签名的时候会校验 package io.github.syske.common.util; import org.bouncycastle.asn1.ASN1ObjectIdentifier; import org.bouncycastle.asn1.ASN1Primitive; import org.bouncycastle

Python语法速查: 10. 异常

…衆ロ難τιáo~ 提交于 2020-01-07 08:08:20
/*--> */ /*--> */ 返回目录 本篇索引 (1) 内置异常 (2) 自定义异常 (3) 主动引发异常 (4) 捕捉异常 (5) error模块 (6) with语句 (1)内置异常 ● 异常的基类: 以下这些异常作为具体异常的基类,都不会被显式引发,但是可以使用它们捕捉某种错误。 基类名称 说明 BaseException 所有内置异常的基类,其他所有内置异常都派生自该类。 Exception 所有内置的非系统退出异常都派生自此类(即除了:SystemExit, GeneratorExit, KeyboardInterrupt之外的所有内置异常)。所有用户自定义异常也应当派生自此类。 ArithmeticError 算术运算异常的基类,包括溢出、除零等等。 LookupError 索引和键错误的基类。 BufferError 当与缓冲区相关的操作无法执行时引发,一般由用户自行继承使用。 ● 具体异常 以下异常属于经常被引发的异常。 具体异常名称 说明 以下异常直接继承自: BaseException GeneratorExit 由生成器的.close()方法引发。 KeyboardInterrupt 由键盘中断(通常为 Ctrl-C)生成。 SystemExit 程序退出,一般系统函数sys.exit()引发。 以下异常继承自: BaseException ->

用Castor 处理XML文档

社会主义新天地 提交于 2020-01-07 07:15:53
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 用Castor 处理XML文档 ——Castor可以完成Java和XML的相互转换 前面有介绍过json-lib这个框架,在线博文:http://www.cnblogs.com/hoojo/archive/2011/04/21/2023805.html 以及Jackson这个框架,在线博文:http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html 它们都可以完成Java对象到XML的转换,但是还不是那么的完善。还有XStream对JSON及XML的支持,它可以对JSON或XML的完美转换。在线博文: http://www.cnblogs.com/hoojo/archive/2011/04/22/2025197.html 这里将介绍Castor来完成Java对象到xml的相互转换。它是怎么样转换的?和前面不同的是castor可以用一个mapping.xml文件来描述转换后的Java对象的xml基本形态,类似于xStream的annotation,这点还是非常不错的。下面我们就来看看Castor是怎么样完成Java对象到XML之间的相互转换吧。 一、 准备工作 1、 官方资源 本示例会运用到如下依赖包(jar包): 资源及jar包下载:http:/

JAVA的异常处理

我怕爱的太早我们不能终老 提交于 2020-01-07 04:37:24
一、观察代码,了解异常处理机制 import javax.swing.*; class AboutException { public static void main(String[] a) { int i=1, j=0,k; // k=i/j; try { k = i/j; // Causes division-by-zero exception throw new Exception("Hello.Exception!"); } catch ( ArithmeticException e) { System.out.println("被0除. "+ e.getMessage()); } catch (Exception e) { if (e instanceof ArithmeticException) System.out.println("被0除"); else { System.out.println(e.getMessage()); } } finally//finally会执行地代码 { JOptionPane.showConfirmDialog(null,"OK"); } } } 输出:被0除. / by zero 从中我们可以看出,在try中一共有两个异常,但最终只执行了ArithmeticException异常,这就代表着try的运行就如同他的名字一样

异常 try catch finally throw throws

泪湿孤枕 提交于 2020-01-07 03:41:53
1.异常常用方法 /** * 异常常用的方法 */ public class ExceptionApiDemo { public static void main(String[] args) { System.out.println("程序开始了"); try { String str = "a"; System.out.println(Integer.parseInt(str)); } catch (Exception e) { /* * 将当前的错误信息输出到控制台上 */ e.printStackTrace(); //获取错误消息 String message = e.getMessage(); System.out.println(message); } System.out.println("程序结束了"); } } 2.异常处理机制中的try-catch /** * java异常处理机制中的try-catch * 语法: * try{ * 程序代码片段 * }catch(XXXException e){ * 当try中出现XXXException后的解决代码 * } * 或 * try{ * * }finally{ * * } */ public class TryCatchDemo { public static void main(String[] args) {