需要一个匹配error和之后的内容,到换行符终止的正则表达式
#!/sur/bin/nve python
# coding: utf-8
from re import findall
text ='''ZeroDivisionError: division by zero
IndexError: range object index out of range
ValueError: invalid literal for int() with base 10: "ok"'''
get_chars = findall(r'Error:([\w :()“”]+)', text)
print(f"\n文本:\n“{text}”\n\n re.findall 提取 Error 之后的字符串直到行末:\n{get_chars}\n")
error可是一个熟面孔了。我们在应用生命周期就学过onError,其实组件自身生命周期的error和onError没什么两样,同样要传递一个参数,这个参数是一个Object,用来记录错误信息的。
那么就给出测试代码,大家用学习onError时我们使用的方法,试一试这个error函数吧!打印一个字符串“error”,并输出错误信息。
代码如下:
lifetimes:{
error: function(err) {
console.log("error");
console.log(err);
}
}
如何引发错误呢?大家在编写组件时可以试着做一个事件绑定,在js中写函数时加入一行错误代码即可。这样在触发绑定的事件时就会弹错,console就会输出“error”和字符串,以及和红框中完全相同的错误信息(一样的错误信息会看到两个,一个是红底的,是工具自带的,一个是我们代码里输出的)。
理论上“error”字符串和我们输出的灰底的错误信息是挨在一起的,并且在红底的错误信息的上方。(其实这也说明工具提供错误信息的时间点在组件生命周期之后)。
微信开放文档:还有一些特殊的生命周期,它们并非与组件有很强的关联,但有时组件需要获知,以便组件内部处理。这样的生命周期称为“组件所在页面的生命周期”。
可用的组件所在页面的生命周期有以下三种:
生命周期 | 参数 | 描述 |
---|---|---|
show | 无 | 组件所在的页面被展示时执行 |
hide | 无 | 组件所在的页面被隐藏时执行 |
resize | 无 | 组件所在的页面尺寸变化时执行 |
学习过页面生命周期,这些函数对我们来说都很好理解。
在学习之前我们要说明这三个组件所在页面的生命周期的声明位置。和组件自身的生命周期相似,在小程序中不建议将这些生命周期直接命名在Components之中,也就是不建议与上文的lifetimes同层级。我们的定义方法是该层级中的pageLifetimes(L是大写!)里面声明。
有了页面生命周期和组件自身的生命周期的学习,这些函数的测试方法相信大家已经能够掌握。我们这里就不再过多叙述,只将测试代码一起给出,希望大家自己尝试测试。
其中resize函数的测试较为特殊,需要启用屏幕旋转支持。本节不对此进行详细描述,详见微信开放文档:响应显示区域变化
https://developers.weixin.qq.com/miniprogram/dev/framework/view/resizable.html#在手机上启用屏幕旋转支持
pageLifetimes: {
show: function() {
console.log("page-show");
},
hide: function() {
console.log("page-hide");
},
resize: function() {
console.log("page-resize")
}
}