try

php try catch throw 用法

有些话、适合烂在心里 提交于 2020-01-27 04:35:51
1.try catch 捕捉不到fatal error致命错误 2.只有抛出异常才能被截获,如果异常抛出了却没有被捕捉到,就会产生一个fatal error。 3.父类可以捕获抛出的子类异常,Exception 可以捕获继承Exception 类型的异常 class ExceptionNew extends Exception{ } function try_throw($type) { if ($type == 1) { throw new ExceptionNew("sunyue"); } } try { try_throw(1); } catch (Exception $e) { echo $e->getMessage(); }    4.try中的代码一旦抛出异常,代码将停止运行,直接执行catch中的代码 5. 多个catch捕获多个异常 PHP将查询一个匹配的catch代码块。如果有多个catch代码块,传递给每一个catch代码块的对象必须具有不同类型(或者可以用同一父类去捕获,这样只要一个catch就可以了),这样PHP可以找到需要进入哪一个catch代码块。当try代码块不再抛出异常或者找不到catch能匹配所抛出的异常时,PHP代码就会在跳转最后一个catch的后面继续执行。因为原则4,所以每次其实这能抛出一个异常,一个异常被捕获。 class

Guava学习笔记:Preconditions优雅的检验参数

孤街浪徒 提交于 2020-01-27 04:05:05
以下资料整理自网络 一、Google Guava 入门介绍 引言 Guava 工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。 查阅Javadoc并不一定是学习这些库最有效的方式。在此,我们希望通过此文档为Guava中最流行和最强大的功能,提供更具可读性和解释性的说明。 译文格式说明 Guava中的类被首次引用时,都会链接到Guava的API文档。如: Optional<T> 。 Guava和JDK中的方法被引用时,一般都会链接到Guava或JDK的API文档,一些人所共知的JDK方法除外。如: Optional.of(T) , Map.get(key)。 译者对文档的额外说明以斜体显示,并且以“ 译者注 : ”开始。 目录 1. 基本工具 [Basic utilities] 让使用Java语言变得更舒适 1.1 使用和避免null :null是模棱两可的,会引起令人困惑的错误,有些时候它让人很不舒服

线程池 掌握治理线程的法宝

老子叫甜甜 提交于 2020-01-26 15:32:53
1.为什么需要线程池 在当今计算机的CPU计算速度非常快的情况下,为了能够充分利用CPU性能提高程序运行效率我们在程序中使用了线程。但是在高并发情况下会频繁的创建和销毁线程,这样就变相的阻碍了程序的执行速度,所以为了管理线程资源和减少线程创建以及销毁的性能消耗就引入了线程池。 2.什么场景下适合使用线程池 当服务器接收到大量任务时,如果使用线程池可以大量减少线程的创建与销毁次数,从而提升程序执行效率 在实际开发中,如果需要创建5个以上的线程,那么就可以使用线程池来管理 3.线程池参数介绍以及特点 https://user-gold-cdn.xitu.io/2020/1/12/16f9a146e43c9ba2?imageView2/0/w/1280/h/960/format/webp/ignore-error/1 3.1 corePoolSize和maxPoolSize corePoolSize:线程池在创建完时,里面并没有线程,只有当任务到来时再去创建线程。 maxPoolSize:线程池可能会在核心线程数的基础上额外增加一些线程,但是线程数量的上限是maxPoolSize。比如第一天执行的任务非常多,第二天执行的任务非常少,但是有了maxPoolSize参数,就可以增强任务处理的灵活性。 3.2 添加线程的规则 当线程数量小于corePoolSize即使线程没有在执行任务

动手动脑五

十年热恋 提交于 2020-01-26 14:55:15
1.请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识。 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 { JOptionPane.showConfirmDialog(null,"OK"); } } } 其输出以下结果: Exception in thread "main" java.lang

Netty序章之BIO NIO AIO演变

扶醉桌前 提交于 2020-01-26 08:31:57
netty是什么     Netty是一个基于Java NIO的client-server网络服务框架,人们可以利用netty快速地开发网络应用。同时netty相对于其他网络框架更加简单并且扩展性更强,这主要得益于其提供的简单易用的api将业务逻辑和网络处理代码解耦开来。能够使你更加专注于业务的实现而不需要太多关心网络底层实现。 Netty是一个提供异步事件驱动的网络应用框架,用以快速开发 高性能 、 高可靠 的网络服务器和客户端程序。Netty简化了网络程序的开发,是很多框架和公司都在使用的技术。更是面试的加分项。Netty并非横空出世,它是在BIO,NIO,AIO演变中的产物,是一种NIO框架。而BIO,NIO,AIO更是笔试中要考,面试中要问的技术。也是一个很好的加分项 流程图: 技术:BIO,NIO,AIO 说明:github上有更全的源码。 源码: https://github.com/ITDragonBl... BIO BIO 全称Block-IO 是一种 阻塞同步 的通信模式。我们常说的Stock IO 一般指的是BIO。是一个比较传统的通信方式, 模式简单 , 使用方便 。但 并发处理能力低 , 通信耗时 , 依赖网速 。 BIO 设计原理: 服务器通过一个Acceptor线程负责监听客户端请求和为每个客户端创建一个新的线程进行链路处理。典型的一请求一应答模式

C++使用throw抛出异常

佐手、 提交于 2020-01-26 04:39:39
引用: c++ 使用throw抛出异常 抛出异常(也称为抛弃异常)即检测是否产生异常,在C++中,其采用throw语句来实现,如果检测到产生异常,则抛出异常。该语句的格式为: throw 表达式; 如果在try语句块的程序段中(包括在其中调用的函数)发现了异常,且抛弃了该异常,则这个异常就可以被try语句块后的某个catch语句所捕获并处理,捕获和处理的条件是被抛弃的异常的类型与catch语句的异常类型相匹配。由于C++使用数据类型来区分不同的异常,因此在判断异常时,throw语句中的表达式的值就没有实际意义,而表达式的类型就特别重要。 【范例20-2】处理除数为0的异常。该范例将上述除数为0的异常可以用try/catch语句来捕获异常,并使用throw语句来抛出异常,从而实现异常处理,实现代码如代码清单20-2所示。 代码清单20-2 1 #include<iostream.h> //包含头文件 2 #include<stdlib.h> 3 double fuc(double x, double y) //定义函数 4 { 5 if(y==0) 6 { 7 throw y; //除数为0,抛出异常 8 } 9 return x/y; //否则返回两个数的商 10 } 11 void main() 12 { 13 double res; 14 try //定义异常 15 { 16

IO流基础到高级

…衆ロ難τιáo~ 提交于 2020-01-26 04:28:38
IO流的使用和注意事项 File类的所使用的 File类的创建的三种方式 File类的常用方法 File类的判断功能的方法 File文件的创建和删除 IO流的分类和结构体系 字符流读取文件(最基本方式) 字符流写入内容到文件(最基本方式) 字符流的读写整合(最基本方式) 字节流读写图片(最基本方式) 缓冲流(作用:提高文件的读写效率。) 缓冲流读取文本(最基本的方式) 转换流的使用 转换流的读取操作 转换流的读取整合(字节流读取文件控制台以字符流的形式输出,在写入的时候通过字节流写入转成字符流写到文件中) 对象流 对象流写入一个bat文件(序列化) 对象流的读取(反序列化) 对象流读取写入自定义的对象 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中、居左、居右 SmartyPants 创建一个自定义列表 如何创建一个注脚 注释也是必不可少的 KaTeX数学公式 新的甘特图功能,丰富你的文章 UML 图表 FLowchart流程图 导出与导入 导出 导入 File类的所使用的 1.File类的一个队形,代表一个文件或者一个文件目录(俗称:文件夹) 2.File类声明在java.io包下。 File类的创建的三种方式 import org . junit . Test ;

JAVA多线程(6):Lock锁

我的梦境 提交于 2020-01-26 03:21:47
一、概念 Lock类是java.util.concurrent.locks下,可以和synchronized实现同样功能的线程锁。 二、lock解决实例 1.出现多线程共享变量访问问题 package com.algorithm.learn.test.JUC; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * Created by Administrator on 2020/1/16. */ public class TestLock { public static void main(String[] args) { Ticket ticket=new Ticket(); new Thread(ticket,"1号窗口").start(); new Thread(ticket,"2号窗口").start(); new Thread(ticket,"3号窗口").start(); } } class Ticket implements Runnable{ private int tick=100; @Override public void run() { while (true){ if(tick>0){ try { Thread.sleep

python异常捕获

白昼怎懂夜的黑 提交于 2020-01-26 02:26:47
异常捕获: python中异常会经常出现 ,会导致代码的后续无法进行,解决方法就是提前捕获到这个异常,然后记录下这个异常,保证后续程序不受影响 写法规格如下: try_stmt ::= try1_stmt | try2_stmt try1_stmt ::= "try" ":" suite ("except" [expression ["as" identifier]] ":" suite)+ ["else" ":" suite] ["finally" ":" suite] try2_stmt ::= "try" ":" suite "finally" ":" suite例子: try:   print("对这段代码有疑惑,来一个异常捕获,程序尝试要执行的代码") except IOError as e: #except后面没跟表达式的话,就是捕获所有异常   print("如果出现IOError异常,就会执行这段代码,错误信息是%s"%e) else:   print("如果没有异常,就走这段代码") finnally:   print("不管捕获没捕获异常,都要执行这段代码") try要和excetp连用,else和finnally不是必须的 来源: https://www.cnblogs.com/dapan-no1/p/10725734.html

异常处理

放肆的年华 提交于 2020-01-26 02:26:29
re 模块 findall search match ret =re.math("\d+","324ajfldksj") `print (ret.goup()) 重头开始匹配,相当于 ret = re.search("^\d+","324ajfldksj") print(ret.goup()) (?:正则表达式) 表示取消优先显示功能 `(?P正则表达式) 异常处理 异常 在编译阶段没问题,在执行阶段才报错 语法错误 在程序执行前就规避掉,不应该留到程序中来处理 在编译阶段出现的报错,飘红 异常出现之后,程序就不继续执行了 如何查看异常? 基本语法: try: 被检查的代码块 execpt 异常类型: try中一旦检测到异常,就会执行execpt下的代码块 try: f = open("a.txt") g = (line.strip() for line in f) print(next(g)) print(next(g)) print(next(g)) print(next(g)) except StopIteration: f.close() #当print(next(g)读完后,下一句print(next(g))就会报错, # 然后触发except语句,执行f.close() l = ['登陆','注册'] try: num = int(input('num : '))