首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python异常捕获

对于代码可能异常进行处理,可以增加程序健壮性。在python,通过try..except语句进行异常捕获,基本用法如下 >>> def calc(a, b): ......代码块 用except捕获对应异常,except语句可以有多条,对应多个不同类型异常,当try某条语句跑出异常之后,程序就会根据异常类型,执行对应except语句 记住所有的异常类型基本是不可能...,在实际开发,往往是根据经验,先设定几个可能异常类型,当遇到超出范围异常时,在修改代码,捕获对应异常。...try语句有两个可选语句 else finally else语句只有当try代码没有抛出异常时,才会执行; finally语句在try语句正常执行或者异常被处理之后就会执行,示例如下 >>> def...most recent call last): File "", line 1, in NameError: name 'a' is not defined 在实际开发

1.9K30
您找到你想要的搜索结果了吗?
是的
没有找到

PHP正则捕获组与非捕获

今天遇到一个正则匹配问题,忽然翻到有捕获概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP也是可行...什么是捕获组 我们先看一下PHP正则匹配函数 int preg_match ( string $pattern , string $subject [, array &$matches [, int...,捕获组是正则表达示以()括起来部分,每一对()是一个捕获组。...捕获忽略与命名 我们还可以阻止PHP为匹配组编号:在匹配组模式前加  ?: $mode = '/a=(\d+)b=(?...非捕获用法: 为什么称为非捕获组呢?那是因为它们有捕获特性,在匹配模式(),但是匹配时,PHP不会为它们编组,它们只会影响匹配结果,并不作为结果输出。 /d(?

2K90

Kotlin实战【五】Kotlin异常

一、kotlin如何抛异常 Kotlin异常处理与Java或者其他语言中处理方式相似。一个函数可以以正常方式结束,或者当错误发生时候抛出异常。...Kotlin异常处理语句基本形式和Java是相似的: java: if(0 <= percentage <= 100){ throw new IllegalArgumentException...(reader)) //239 java: public int readNumber(BufferedReader reader) throws IOException{ //显式地指定这个函数可能抛出异常...所以Java编译不会强迫你捕获这个异常,你可以很容易看见运行时异常。这相当令人遗憾,因为不有效输入数据是经常事情,应该更优雅处理。...如果捕获到一个异常,那么cache代码块中最后一个表达式就是结果。 四、总结 1、kotlin异常处理和java处理相似,除了Kotlin不要求你声明函数可以抛出异常。

1.9K40

Kotlin如何捕获上下文中变量与常量详解

Lambda表达式或匿名函数可以访问或修改其所在上下文中变量和常量,这个过程被称为捕获。...(): List<String { //向list集合添加一个元素 list.add(ele) return list } return ::addElement } }...上例顶一个一个局部函数,这个局部函数可访问或修改其所在函数变量。...Lambda表达式或匿名函数都会持有一个其所捕获变量副本,因此表面上看addElement()访问是makeList()函数list集合变量,但只要程序返回一个新addElement()函数,...Lambda表达式或匿名函数都会持有一个其所捕获变量副本,因此表面上看addElement()访问是makeList()函数list集合变量,只要程序返回一个新addElement()函数,就会持有一个新

57021

聊聊Mysqlint(1)

昨天有个读者问了我这样一个问题在mysql建表时候,我设置一个字段为int类型,长度为1,但是我发现这个字段却可以存储任意长度数字,这是什么情况?...int 类型占 4 个字节,一个字节是 8 位,也就是说 int 类型在计算机底层是由 32 个 0 跟 1 表示,转化为十进制就是 2 32 次方,那么存储范围就是 0~2^32 ,如果带符号位的话就是...现在再来看看这个int(1)1究竟有什么奥秘。这个1跟这个字段能存数据范围没关系,它也不是限制这个字段数据长度。这个字段存储数据范围是由int来限制。...比如我们将int(1)改成int(3),我们再输入1,实际上显示是001。所以无论你将 int 类型长度设为多少并不会影响数据存储范围。...mysql对于整型数据类型,不仅给我们提供了int,还提供了tinyint,smallint,mediumint和bigint。

1.7K20

Kotlin函数

例子如下: 在Android开发,打印信息 //通过关键字inline来定义内联函数。 //泛型 reified关键字告诉编译,这个泛型是可以具体拿到值泛型。...这里等待后面具体来看什么时候非内联 在 Kotlin ,我们可以只使用一个正常、非限定 return 来退出一个命名或匿名函数。...):Int=x*2 局部函数 Kotlin 支持局部函数,即一个函数在另一个函数内部。...与 Java 不同是可以修改闭包捕获变量: var sum = 0 ints.filter { it > 0 }.forEach { sum += it } print(sum) 带接收者函数字面值...其用法最重要示例之一就是类型类型安全Groovy-风格构建 //这样函数字面值类型是一个带有接收者函数类型: //下面是定义参数 sum : Int.

2.3K40

Kotlin扩展

Kotlin 扩展 到底是什么?...简单使用: 扩展函数 //要扩展哪个类方法,被扩展类名就是哪个 fun 被扩展类名.扩展函数名(..参数..){ 函数体 } 例如: 在Array扩展一个元素交换方法 fun Array<Int...Kotlin 扩展是一个很独特功能, Java 本身并不支持扩展, Kotlin 为了让扩展能在JVM平台上运行,必须做一些独特处理 Kotiin 支持扩展方法和扩展属性 扩展实现机制 Java...但现在 Kotlin 扩展却好像可以动态地为一个类增加新方法,而且不需要重新修改该 类源代码,那 Kotlin 扩展实际情况是怎样呢?难道 Kotlin 可以突破 NM 限制?...实际上, Kotlin 扩展并没有真正地修改所扩展类,被扩展类还是原来类,没有任 何改变。

1.2K30

用伪代码理解浏览事件冒泡以及捕获

好了,从这个时候开始,浏览就会运行自己事件循环,查看是否有各种事件发生 于是,这个时候,用户点击了一下页面上某一块位置,但是浏览并不知道用户点 击了哪一个dom,并且也不知道该dom是否有事件响应程序...,浏览知道只是用户点 击位置x,y坐标,浏览这个时候就开始从dom树根开始寻找,(这里是捕获 开始),x,y是否在根位置上,根有没有注册点击事件?...点击事件是否是捕获注册 ?...如果事件是捕获注册,那么执行这个事件处理函数,在该函数,判断是否有 event.stopPropagation()来阻止事件捕获,若阻止了,那么该点击事件整个过程就完 成了,不论子节点是否注册了点击事件都不会执行到...在回 去过程,判断每个节点是否注册了点击事件,是否是冒泡注册,如果是冒泡注册 事件,那么就执行,执行过程如果发生了event.stopPropagation(),那么整个点击事件 就结束了

66120

关于 Block 捕获 self 分析

自带汇编分析下实现,由于转成汇编代码(基于ARMv7)太长这里只讲关键部分 首先对于实例方法会带上两个隐藏参数,一个是self,一个是cmd,下面是调用testBlock方法之前初始化部分 push...,调用了最后_objc_retainBlock后才会拷贝到堆上,block本质就是一个结构体,布局如下图,当需要捕获外部变量时候会把捕获变量放到结构体内,总之这里关键就是要看是否有将self强引用并捕获到...即强持有self 最后最后看一下block调用反编译结果 int ___19-[KDTest testBlock]_block_invoke(int arg0) { var_18 = objc_loadWeakRetained...++方法,这里加不加self会导致不同赋值方式,不加self情况会使用block持有的self来访问。...但缺点是得时刻注意不要错写成self __strong KDTest *self = weak_self; 第二种就是空间里面使用,重新定义变量就叫self(其实这里编译也不让重新定义self

1.4K21

About Kotlin-Kotlin类1About Kotlin(1)

About Kotlin(1) 因为是从Java角度来学习Kotlin,在Java,类作为第一等公民。故学习Kotlin,也先从其类开始。...Kotlin类 普通类 class Kotlin没有添加修饰符直接以class开头都是final类。final类意义在于JVM可能存在优化(常量和方法内联)和防止继承滥用。...class Customer(val firstName:String="",var lastName:String,var age:Int){ } Kotlin可以提供默认值方式,解放了手写代码量...在Kotlin,override不是可选注解而是强制关键字。所以由此引发bug就不会再有了,编译会提前警告你。Kotlin把这些事清楚展现出来。...//在Kotlin,可以使用data关键字 data class User(val name:String,val age:Int) 自动生成函数 编译会自动从主构造函数根据所有声明属性提取以下函数

1.2K30

关于 Block 捕获 self 分析

自带汇编分析下实现,由于转成汇编代码(基于ARMv7)太长这里只讲关键部分 首先对于实例方法会带上两个隐藏参数,一个是self,一个是cmd,下面是调用testBlock方法之前初始化部分 push...,调用了最后_objc_retainBlock后才会拷贝到堆上,block本质就是一个结构体,布局如下图,当需要捕获外部变量时候会把捕获变量放到结构体内,总之这里关键就是要看是否有将self强引用并捕获到...即强持有self 最后最后看一下block调用反编译结果 int ___19-[KDTest testBlock]_block_invoke(int arg0) { var_18 = objc_loadWeakRetained...++方法,这里加不加self会导致不同赋值方式,不加self情况会使用block持有的self来访问。...*strong_self = weak_self; 第二种就是空间里面使用,重新定义变量就叫self(其实这里编译也不让重新定义self,只是在宏里面强行掩盖掉了),优点是发消息时候不用担心写错了直接用

85550
领券