try

python-异常处理

爷,独闯天下 提交于 2020-01-26 02:07:40
异常处理 1、异常基础 1 try: 2 names[3] 3 data['name'] 4 except KeyError as e: #特定错误 5 print("没有这个key",e) 6 except Exception as e: #其他错误 7 print("出错了",e) 8 else: 9 print("一切正常") 10 finally: 11 print("不管有没有错,都执行") 例子 在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!! 1 2 3 4 try : pass except Exception,ex: pass 需求:将用户输入的两个数字相加 1 while True: 2 num1 = raw_input('num1:') 3 num2 = raw_input('num2:') 4 try: 5 num1 = int(num1) 6 num2 = int(num2) 7 result = num1 + num2 8 except Exception, e: 9 print '出现异常,信息如下:' 10 print e View Code while True: num1 = raw_input('num1:') num2 = raw_input('num2:

python异常处理

心已入冬 提交于 2020-01-26 02:06:43
1、异常基础 在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!! 1 2 3 4 try : pass except Exception,ex: pass 需求:将用户输入的两个数字相加 1 while True: 2 num1 = raw_input('num1:') 3 num2 = raw_input('num2:') 4 try: 5 num1 = int(num1) 6 num2 = int(num2) 7 result = num1 + num2 8 except Exception, e: 9 print '出现异常,信息如下:' 10 print e 2、异常种类 python中的异常种类非常多,每个异常专门用于处理某一项异常!!! AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入模块或包;基本上是路径问题或名称错误 IndentationError 语法错误(的子类) ;代码没有正确对齐 IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5] KeyError 试图访问字典里不存在的键

Spring AOP中的动态代理

我怕爱的太早我们不能终老 提交于 2020-01-25 14:47:33
0 前言 1 动态代理 1.1 JDK动态代理 1.2 CGLIB动态代理 1.2.1 CGLIB的代理用法 1.2.2 CGLIB的过滤功能 2 Spring AOP中的动态代理机制 2.1 JdkDynamicAopProxy 2.2 CglibAopProxy 3 总结 0 前言 前一个季度旅游TDC的Thames服务有几次宕机,根据组内原因认真查找发现是数据库事务造成的,后来把服务中的事务配置全部去掉,服务恢复正常。根据这次教训,虽然现在还是很难确定是哪一个方面的真正原因,但是激发了我学习Spring事务方面的兴趣。而Spring事务的实现是根据AOP来实现的,对于我这个小菜鸟,只能一步一步来了,决定先从Spring的AOP开始。 1 动态代理 Spring AOP中使用了两种动态代理,一种是JDK的动态代理,一种CGLIB的动态代理。JDK的动态代理必须指定接口,这些接口都是已经被代理对象实现了的;而CGLIB代理则不需要指定接口。 1.1 JDK动态代理 JDK的动态代理网上有很多资料,这里只说我自己的理解。 JDK动态代理必须实现InvocationHandler接口,然后通过Proxy.newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)获得动态代理对象。

ajax异步加载jqgrid之动态创建

独自空忆成欢 提交于 2020-01-25 14:36:41
之前写过一篇过于ajax异步加载jqgrid的文章,那个只是一个特殊的情况,如果创建不同数据库表的jqgrid,必须分别写servlet,dao层和连接池,很麻烦,今天我写了一个万能的写法,客官只要在前台js中写入表格名称和字段名称即可实现功能! 下面就是代码实例,关于jqgrid,ajax的介绍这里暂时不多说,有不懂的可以参考我之前的文章! 代码实例 JSP层 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>定义>类型</title> <link rel="stylesheet" href="css/homepage.css"> <link type="text/css" rel="stylesheet" href="css/bootstrap.min.css"> <link type="text/css" rel="stylesheet" href="js/JqGrid/css/font-awesome.min.css"> <link type="text/css" rel="stylesheet"

动手动脑-异常处理

淺唱寂寞╮ 提交于 2020-01-25 11:39:37
课后作业 01-动手动脑 1、请阅读并运行 AboutException.java示例,然后通过后面的几页 PPT了解 Java中实现异常处理的基础知识 结果截图: 异常处理: Try{ //可能发生运行错误的代码; } catch(异常类型 异常对象引用) { //用于处理异常的代码; } finally{ //用于“善后” 的代码; } ( 1)把可能会发生错误的代码放进 try语句块中。 ( 2)当程序检测到出现了一个错误时会抛出一个异常对象。异常处理代码会捕获并处理这个错误。 ( 3) catch语句块中的代码用于处理错误。 ( 4)当异常发生时,程序控制流程由 try语句块跳转到 catch语句块。 ( 5)不管是否有异常发生, finally语句块中的语句始终保证被执行。 如果没有提供合适的异常处理代码, JVM将会结束掉整个应用程序。 2、阅读以下代码( CatchWho.java),写出程序运行结果: 运行结果截图: 3、写出 CatchWho2.java程序运行的结果 : 运行结果截图: 4、辨析:finally语句块一定会执行吗?请通过 SystemExitAndFinally.java示例程序回答上述问题。 答:不一定;finally不一定执行,当try从句或者catch()从句中有System.exit()语句时,finally()不会被执行

Java Scoket编程

时光毁灭记忆、已成空白 提交于 2020-01-25 10:23:13
Java Scoket编程 转自http://www.cnblogs.com/futao123/p/5068632.html 爱海滔滔 一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。 而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。 目前较为流行的网络编程模型是客户机/服务器(C/S)结构。 即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提 出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客 户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也 能及时得到服务。 二,两类传输协议: TCP 和 UDP   TCP 是 Tranfer Control Protocol 的 简 称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须 建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时

Java多线程基础——Lock类

独自空忆成欢 提交于 2020-01-25 07:29:32
Java多线程基础——Lock类 转自:https://www.cnblogs.com/qifengshi/p/6354890.html 之前已经说道,JVM提供了synchronized关键字来实现对变量的同步访问以及用wait和notify来实现线程间通信。在jdk1.5以后,JAVA提供了Lock类来实现和synchronized一样的功能,并且还提供了Condition来显示线程间通信。 Lock类是Java类来提供的功能,丰富的api使得Lock类的同步功能比synchronized的同步更强大。本文章的所有代码均在 Lock类例子的代码 本文主要介绍一下内容: Lock类 Lock类其他功能 Condition类 Condition类其他功能 读写锁 Lock类 Lock类实际上是一个接口,我们在实例化的时候实际上是实例化实现了该接口的类 Lock lock = new ReentrantLock(); 。用synchronized的时候,synchronized可以修饰方法,或者对一段代码块进行同步处理。 前面讲过,针对需要同步处理的代码设置对象监视器,比整个方法用synchronized修饰要好。Lock类的用法也是这样,通过Lock对象lock,用 lock.lock 来加锁,用 lock.unlock 来释放锁。在两者中间放置需要同步处理的代码。 具体的例子如下

Zookeeeper应用实践(四)

旧时模样 提交于 2020-01-25 06:11:19
zk的应用还是非常广泛的。 1. 分布式锁 单机环境下的锁还是很容易去实现的,但是在分布式环境下一切都变得不是那么简单。zk实现分布式锁的原理还简单,因为在分布式环境中的zk节点的变化会被每一台机器watch,有任何变化都会被通知,所以我们可以利用这个机制: 我们创建一个根节点Lock,在获取锁的时候在该节点下创建临时顺序节点,释放锁的时候删除该临时节点。客户端调用createNode方法在Lock下创建临时顺序节点。 调用getChildren(” Lock”)来获取Lock下的所有节点,注意此时不用设置任何的Watcher。 客户端获取到所有子节点的path之后发现如果自己之前所创建的子节点序号最小,那么就认为该客户端获取到了锁。如果发现自己所创的节点并非Lock中最小的说明自己还没获得到锁。 此时客户端需要找到比自己小的马哥节点,然后对其调用exist()方法,同时对其注册时间监听器。是山猫关注这个节点是否被删除(前面我们说了释放所就会删除节点)。 当监听到了删除事件,再次判断自己所创建的节点是否是Lock中节点顺序最小的节点,如果是则获取到了锁,如果不是则继续重复以上步骤直到获取到比自己小的节点的删除事件并注册监听。 大致流程就是上面所说,我们可以画一个流程图来表示: 下面写一个测试例子运行一下我们的逻辑: DistributedLock: import java.io

异常处理过程和异常处理的执行顺序(针对try{}catch{}finally{}而言)

隐身守侯 提交于 2020-01-25 05:06:51
1.异常的处理方式有两种分别为:try{}catch{}finally{}和throws下面简单说一下这两者的区别和联系。 2.出现异常之后如果没有进行捕获处理系统就会直接将这个异常栈的跟踪信息直接打印出来之后就结束这个程序的执行。 下面我们看一下异常处理: public class Test{ public static void main(String[] args){ Test2 test2 = new Test2(); try{ System.out.println("invoke the method begin!"); test2.method(); System.out.println("invoke the method end!"); }catch(Exception e){ System.out.println("catch Exception!"); } } } class Test2{ public void method() throws Exception{ System.out.println("method begin!"); int a = 10; int b = 0; int c = a/b; System.out.println("method end!"); } } 很明显,答案出来了: invoke the method begin!

jdk 动态代理的原理

余生颓废 提交于 2020-01-25 04:33:48
一、代理设计模式 代理设计模式是Java常用的设计模式之一。 特点: 01.委托类和代理类有共同的接口或者父类; 02.代理类负责为委托类处理消息,并将消息转发给委托类; 03.委托类和代理类对象通常存在关联关系,一个代理类对象与一个委托类对象关联; 04.代理类本身不是真正的实现者,而是通过调用委托类方法来实现代理功能; 二、静态代理与动态代理 按照代理类创建的时机,代理类分为两种: 01.静态代理: 由我们程序猿或者特定的工具自动生成了源代码,在程序运行之前,class文件已经存在了 ;例如在serviceImpl.java中调用dao.xx(),真正的实现者是dao,service就可以理解为一个代理类; 02.动态代理: 在程序运行期间,通过反射创建出来的代理类 ; 三、jdk动态代理 顾名思义,这种方式是由jdk为我们提供的。下面通过一个例子来演示。 01.创建一个Person接口 public interface Person { void eat(); void sleep(); } 02.创建ZhangSan.java实现Person接口 public class ZhangSan implements Person { public void eat() { System.out.println("吃饭..."); } public void sleep() {