try

java异常机制

柔情痞子 提交于 2020-03-25 08:32:14
try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。 package Test; public class TestException { public TestException() { } boolean testEx() throws Exception { boolean ret = true; try { ret = testEx1(); } catch (Exception e) { System.out.println( "testEx, catch exception"); ret = false; throw e; } finally { System.out.println( "testEx, finally; return value=" + ret); return ret; } } boolean testEx1() throws Exception { boolean ret = true; try { ret = testEx2(); if (!ret) {

Java异常机制

微笑、不失礼 提交于 2020-03-25 08:31:36
Java异常分类 异常表明程序运行发生了意外,导致正常流程发生错误,例如数学上的除0,打开一个文件但此文件实际不存在,用户输入非法的参数等。在C语言中我们处理这类事件一般是将其与代码正常的流程放在一起,通过判断条件让程序作出相应的操作,例如添加提示信息然后让程序返回一个错误码。在Java中引入了异常处理,可以帮助我们将程序的正常流程和错误处理分开。Java中所有的异常都继承自java.lang.Exception类。Throwable类又包含两个直接的子类,分别为Error和Exception,从这两个子类又分别生出一些新的异常类,如图所示: Exception是从任何Java类库的方法(包括标准类库的方法和自己定义的类方法)以及运行时抛出异常的基类。它可以分为运行时异常(RuntimeException)和检查异常(Checked Exception)两种。对于检查异常Java编译器会检查它,编译器要求必须捕获(使用try-catch)或声明抛出这种异常(使用throws语句声明抛出),除了RuntimeException外的其他异常均为检查异常。对于RuntimeException在默认情况下会自动处理,例如除0操作,访问非法的数组下标等,所以一般不用捕获RuntimeException,但是如果是自己定义的异常则需要抛出。 Error表示程序中出现了严重的问题

使用 try-with-resources 语句替代 try-finally 语句

旧街凉风 提交于 2020-03-25 04:25:19
/*--> */ /*--> */ 使用 try-with-resources 语句替代 try-finally 语句 从以往来看,try-finally 语句是保证资源正确关闭的最佳方式,即使是在程序抛出异常或返回的情况 下: x static String firstLineOfFile(String path) throws IOException { BufferedReader br = new BufferedReader(new FileReader(path)); try { return br.readLine(); } finally { br.close(); } } 这可能看起来并不坏,但是当添加第二个资源时,情况会变得更糟 xxxxxxxxxx static void copy(String src, String dst) throws IOException { InputStream in = new FileInputStream(src); try { OutputStream out = new FileOutputStream(dst); try { byte[] buf = new byte[BUFFER_SIZE]; int n; while ((n = in.read(buf)) >= 0) out.write(buf, 0, n);

JAVA NIO

删除回忆录丶 提交于 2020-03-24 22:35:56
转载请注明出处:https://i.cnblogs.com/EditPosts.aspx?opt=1 我们在学习的过程中可以形成自己的代码库,即将一些常用的类,函数,接口,配置文件等单独拎出来,下次使用时直接复制过来,这样就可以重复造轮子,早点下班回家。 java NIO是一个高效的处理文件的API, 比传统文件流要高效许多。 public class MyFileTools { public void copyFile(String inFile,String outFile,boolean tail){ FileInputStream fin = null; FileOutputStream fout = null; FileChannel fcin = null; FileChannel fcout = null; try { fin = new FileInputStream(inFile); fout = new FileOutputStream(outFile,tail); fcin = fin.getChannel(); fcout = fout.getChannel(); ByteBuffer buffer = ByteBuffer.allocate(1024); while(true){ buffer.clear(); int read = fcin.read

04.异常

帅比萌擦擦* 提交于 2020-03-24 17:46:42
1、异常简介 异常就是程序运行错误或者逻辑混乱。需要给客户友好的提示。 异常一般是程序中无法完全避免,一般通过一定的手段,尽量减少异常的发生。 异常: 当Python检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常" 2、捕获异常 2.1捕获异常 try...except... 把可能出现问题的代码,放在try中 把处理异常的代码,放在except中 except后不写任何类,表示捕捉任何异常 这种结构虽然能捕捉异常,但是代码的速度有所降低,所以,只能把可能的出现异常的代码放到try 与 except之间 2.2except捕获多个异常 如果想通过一次except捕获到多个异常可以用一个元组的方式#except (IOError,NameError): errorMsg里会保存捕获到的错误信息 #print(errorMsg) 当出现异常。其实解析器会被这种异常分析,实例化得到一个异常对象xx,然后再与except里的异常类进行匹配,如果能匹配,as将异常对象赋给ex path = input('输入文件的路径:') content = None try: content = open(path,'r',encoding='utf-8').read() except FileNotFoundError as ex: print('4......

Java中请优先使用try-with-resources而非try-finally

杀马特。学长 韩版系。学妹 提交于 2020-03-24 08:13:44
Java中请优先使用try-with-resources而非try-finally Java库包含了很多需要手工调用close方法来关闭的资源。比如说InputStream、OutputStream及java.sql.Connection。关闭资源常常会被客户端所忽视,这会导致可怕的性能问题。虽然很多资源使用了终结器来作为安全网,不过终结器却并不那么尽如人意。 从历史上来看,try-finally语句是确保资源会被恰当关闭的最佳方式,即便在遇到异常或是返回语句时亦如此: // try-finally - No longer the best way to close resources! static String firstLineOfFile(String path) throws IOException { BufferedReader br = new BufferedReader(new FileReader(path)); try { return br.readLine(); } finally { br.close(); } } 看起来还不错,不过当添加了第二个资源时情况就变得有些糟糕了: // try-finally is ugly when used with more than one resource! static void copy(String src

Java中请优先使用try-with-resources而非try-finally

大憨熊 提交于 2020-03-24 08:09:32
Java中请优先使用try-with-resources而非try-finally Java库包含了很多需要手工调用close方法来关闭的资源。比如说InputStream、OutputStream及java.sql.Connection。关闭资源常常会被客户端所忽视,这会导致可怕的性能问题。虽然很多资源使用了终结器来作为安全网,不过终结器却并不那么尽如人意。 从历史上来看,try-finally语句是确保资源会被恰当关闭的最佳方式,即便在遇到异常或是返回语句时亦如此: // try-finally - No longer the best way to close resources! static String firstLineOfFile(String path) throws IOException { BufferedReader br = new BufferedReader(new FileReader(path)); try { return br.readLine(); } finally { br.close(); } } 看起来还不错,不过当添加了第二个资源时情况就变得有些糟糕了: // try-finally is ugly when used with more than one resource! static void copy(String src

java7 try-with-resources 很香

房东的猫 提交于 2020-03-23 22:45:06
Java 7 为懒惰的Java开发人员带来了一些非常好的功能。 尝试资源 是这种功能之一,它可以减少代码行,并使代码更健壮。在本教程中,我将讨论有关此功能的内容。 1. 资源清除的旧方法(在Java 7之前) **我们长期以来一直在这样做。例如,从文件系统读取文件。代码可能看起来有所不同,但流程如下例所示: public class ResourceManagementBeforeJava7 { public static void main(String[] args) { BufferedReader br = null; try { String sCurrentLine; br = new BufferedReader(new FileReader("C:/temp/test.txt")); while ((sCurrentLine = br.readLine()) != null) { System.out.println(sCurrentLine); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (br != null) br.close(); } catch (IOException ex) { ex.printStackTrace(); } } } }

java7 try-with-resources 很香

坚强是说给别人听的谎言 提交于 2020-03-23 22:43:55
Java 7 为懒惰的Java开发人员带来了一些非常好的功能。 尝试资源 是这种功能之一,它可以减少代码行,并使代码更健壮。在本教程中,我将讨论有关此功能的内容。 1. 资源清除的旧方法(在Java 7之前) **我们长期以来一直在这样做。例如,从文件系统读取文件。代码可能看起来有所不同,但流程如下例所示: public class ResourceManagementBeforeJava7 { public static void main(String[] args) { BufferedReader br = null; try { String sCurrentLine; br = new BufferedReader(new FileReader("C:/temp/test.txt")); while ((sCurrentLine = br.readLine()) != null) { System.out.println(sCurrentLine); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (br != null) br.close(); } catch (IOException ex) { ex.printStackTrace(); } } } }

12异常

旧时模样 提交于 2020-03-23 16:51:24
1 """ 2 异常 3 """ 4 """ 5 1.异常基类:Exception 6 2.常见的异常有:NameError 名称 SyntaxError 语法错误 IndexError 索引 7 KeyError 键 FileNotFoundError 文件未找到 AttributeError 对象属性异常 8 TypeError 类型 9 """ 10 # print(a) # NameError: name 'a' is not defined 11 # print(2/0) # ZeroDivisionError: division by zero 12 # for i in range(5) # SyntaxError: invalid syntax 13 # list_1 = [1,2,3] 14 # print(list_1[3]) # IndexError: list index out of range 15 # dict_1 = {1:"a",2:"b"} 16 # print(dict_1[3]) # KeyError: 3 17 # fire = open("1111.txt","r") # FileNotFoundError: [Errno 2] No such file or directory: '1111.txt' 18 # class Car