try

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.

实例方法、类方法和静态方法

耗尽温柔 提交于 2020-04-08 13:58:07
Python中常用的三种方法: 1. 实例方法 (常见函数) 2. 静态方法 (@staticmethod) 3. 类方法 (@classmethod) 实例方法 定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法); 调用:只能由实例对象调用。 类方法 定义:使用装饰器@classmethod。第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它性来传递类的属和方法(不能传实例的属性和方法); 调用:实例对象和类对象都可以调用。 静态方法 定义:使用装饰器@staticmethod。参数随意,没有“self”和“cls”参数,但是方法体中不能使用实例的任何属性和方法,使用类的属性和方法需要使用类对象引用; 调用:实例对象和类对象都可以调用。 一、区别    二、代码示例    #!/usr/bin/env python # -*- coding:utf-8 _*- __author__ = '池偏一' ''' @author:shz @license: Apache Licence @file: testargs.py @time: 2018/06/19 @site: @software: PyCharm ''' import sys reload(sys) sys.setdefaultencoding

Python-try except else finally有return时执行顺序探究

十年热恋 提交于 2020-04-08 06:59:41
学习python或者其他有异常控制的 编程 语 言, 大家很有可能说try except finally(try catch finally)的执行很简单,无非就是有异常的话执行except, finally无论是否有异常都会执行, 大致上原则是这样, 但是如果涉及到更加详细的复杂的路径,加上return 语句,就没有那么简单了。 1. 没有return 语句的情况 print 'this is a test of code path in try...except...else...finally' print '************************************************************' def exceptTest(): try: print 'doing some work, and maybe exception will be raised' raise IndexError('index error') #print 'after exception raise' #return 0 except KeyError, e: print 'in KeyError except' print e #return 1 except IndexError, e: print 'in IndexError except' print

TransactionScope事务

白昼怎懂夜的黑 提交于 2020-04-08 04:49:51
一个错误的理解就是Complete()方法是提交事务的,这是错误的,事实上,它的作用的表示本事务完成,它一般放在try{}的结尾处,不用判断前台操作是否成功,如果不成功,它会自己回滚。 #region 事务问题 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 来源: https://www.cnblogs.com/niuzaihenmang/p/5614840.html

JAVA-超大文件上传-如何上传文件-大文件上传

百般思念 提交于 2020-04-07 17:53:14
java两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路: 1、服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操作 2、服:使用ServerSocket.accept()方法进行阻塞,接收客户端请求 3、服:每接收到一个Socket就建立一个新的线程来处理它 4、客:利用Socket进行远程连接,询问已上传进度 5、客:使用FileInputStream.skip(long length)从指定位置读取文件,向服务器发送文件流 6、服:接收客户端输入流,使用RandomAccessFile.seek(long length)随机读取,将游标移动到指定位置进行读写 7、客/服:一个循环输出,一个循环读取写入 8、示例:以下是具体代码,仅供参考 文件介绍: FileUpLoadServer.java(服务器接收文件类) FileUpLoadClient.java(客户端发送文件类) FinalVariables.java(自定义参数类) SocketServerListener.java(JavaWeb启动Socket操作类) web.xml(配置文件,跟随项目启动) 断点上传(服务端) package com.cn.csdn.seesun2012.socket; import java.io

一日一技:一文搞懂Python错误和异常

会有一股神秘感。 提交于 2020-04-07 17:24:13
写Python代码的小伙伴不可避免地会遇到代码执行错误和异常,这次就来详细且不失通俗地总结一下python中的错误和异常。 先抛出两个问题: 什么是Python错误和异常? 如何处理Python错误和异常? 1、语法错误 语法错误 可能是初学者最常遇到的,如下面熟悉的画面: <span><span style="font-size: 15px;">SyntaxError: invalid syntax</span></span> 语法错误又称解析错误,又有老哥会问什么是解析错误? 简单来说是基本语法结构写错了,如: 多任务写成一行、for循环没加‘:’等。 如下: 多任务写成一行 for循环没加‘:’ 上面示例可以看到,针对语法错误,python解析器会输出错误的那一行, 并且在最先找到的错误的位置标记了一个箭头。 2、异常 熟悉python语法后,可以避免语法错误,但是代码常会发生异常 (Exception)。 还是两个问题: 异常是什么? Python用 异常对象 (exception object)来表示异常情况。 遇到错误后,会引发异常。 如果异常对象并未被处理或捕捉,程序就会用所谓的 回溯 (traceback, 一种错误信息)终止执行。 异常和语法错误有什么区别呢? 错误: 是指代码不符合解释器或者编译器语法 异常: 是指不完整、不合法输入,或者计算出现错误 关于异常

java语法基础

a 夏天 提交于 2020-04-07 07:19:39
java很多语法都跟C#类似,下面列举一些不同的地方******注意***** java中的系统方法首字母都是小写的,而C#中首字母都是大写的 1、java中继承的用法   class children extends parent   {   } 而c#中:   class children :parent   {   } java中继承接口的用法   class children implements parent   {   } 而c#中:   class children :parent   {   } 2、还有一点很重要的事java中的main函数所在的类名必须和文件名相同。   其次是在一个文件中只能main函数所在的类是public修饰的,其他不能带public ,一个文件中只能有一个public类。   java中的静态成员既可以实例化对象调用,也可以类名来点出来,非静态成员只能实例化对象调用。****没有静态类   而在C#中静态成员不能实例化对象调用 3、java中方法的重写就方法的覆盖,貌似真的是覆盖,就是重新写一遍   而C#中的重写要用关键字override,并且只能是抽象和虚方法或者标记为override才能重写。 4、java中有一个特殊的static语句块功能,static语句块中的语句在构造函数之前执行且只执行一次 5、java和C

Java中的异常报告和处理机制 && Java中的异常栈轨迹和异常链

泄露秘密 提交于 2020-04-07 04:15:29
参考文献: https://www.cnblogs.com/zhangdaicong/p/6127984.html 为了应对运行期间可能出现的错误,提高程序的的稳健性,Java中定义了强大的异常处理机制。 Java的异常机制在增强程序稳健性的同时(围绕异常声明,在编译期间就具有严格的异常制度),增强了业务代码的逻辑性和连贯性(通过try-catch,避免了C等语言下的业务逻辑代码和异常检测代码严重混合)。 异常声明:Java要求能抛出异常的方法必须加上异常声明(该些异常未被处理,且非Java中定义的标准异常)。 Example: 1 package demo; 2 import static net.mindview.util.Print.*; 3 4 public class TestException { 5 TestException(int i) throws ExceptionA,ExceptionB{ 6 switch(i) 7 { 8 case 1 : throw new ExceptionA(); 9 case 2 : throw new ExceptionB(); 10 default : {int a[]={0,}; a[1]=1;}; 11 } 12 } 13 } 14 class ExceptionA extends Exception{}; 15

Java加密工具类

送分小仙女□ 提交于 2020-04-06 23:52:15
加密工具类: package group.hound.starter.core.util; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; import java.security.*; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.security.spec.InvalidKeySpecException; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.Base64; import javax.crypto.*; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.digest.DigestUtils; import org

并发编程的艺术07-非阻塞同步演进

ぃ、小莉子 提交于 2020-04-06 11:32:16
前言 不知道大家有没有发现几乎每个专业领域中都充斥着很多抽象的专业名词,如果没有相关的基础知识很难知道这些专业名词是什么意思,就比如说我们的这个标题“粗粒度同步”。川建国听了想骂娘,什么是TMD“粗粒度同步”?最近我对理查德·费曼做了一些了解,他在阐述一个事物的时候强调要用通俗易懂的语言,让人容易理解的方式而不是专业名词满天飞。对于一个事物能够给一个孩子或者是一个对此不了解的外行人讲明白就说明你自己是真的明白了。所以我们的技术类文章也会力求用通俗易懂的方式把事物讲的让人更容易理解,而不是使用大量的专业名词。 本章内容我们将以一个集合作为例子,集合中有 add , remove ,contains 三个函数。 add(x) 函数将元素 x 添加到集合中,当且仅当集合中原先不存在 x 时返回 true。 remove(x) 函数将元素 x 从集合中删除,当且仅当集合中原来存在 x 的时候返回 true 。 当且仅当集合中包含 x 元素时 contains(x) 返回 true。 链表中除了包含集合元素的常规节点外,还使用了两个称为 head , tail 的哨兵节点,作为链表的第一个节点和最后一个节点。哨兵节点不能被添加,删除,或查找,它们的 key 值分别为整数值的最小和最大值,也就是说 key 值越大的元素排序越靠后。 粗粒度同步 “粗粒度同步