百度
360搜索
搜狗搜索

assertionerror,python错误?详细介绍

本文目录一览: java assertionerror是什么异常

java.lang.AssertionError异常大致类似于下图所示:
第一步,右键module—选择open module settings。
第二步,在左侧找到Modules并选中。
第三步,在右侧设置Module SDK版本。
第四步,在左侧找到SDKs并选中。
第五步,在中间栏任意选中一个sdk—右边的bulid target这里可能出现的是none,修改一下确定即可。
“java assertionerror”异常的解释是"程序遇上了空指针"。简单地说,就是调用了未经初始化的对象或者是不存在的对象。这个错误经常出现在创建图片,调用数组这些操作中,比如:图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化。(如果要调用的话)
1. java.lang.nullpointerexception
这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)
2. java.lang.classnotfoundexception
这个异常是很多原本在jb等开发环境中开发的程序员,把jb下的程序包放在wtk下编译经常出现的问题,异常的解释是"指定的类不存在",这里主要考虑一下类的名称和路径是否正确即可,如果是在jb下做的程序包,一般都是默认加上package的,所以转到wtk下后要注意把package的路径加上。
3. java.lang.arithmeticexception
这个异常的解释是"数学运算异常",比如程序中出现了除以零这样的运算就会出这样的异常,对这种异常,大家就要好好检查一下自己程序中涉及到数学运算的地方,公式是不是有不妥了。
4. java.lang.arrayindexoutofboundsexception
这个异常相信很多朋友也经常遇到过,异常的解释是"数组下标越界",现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看自己调用的下标是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,最好先查看一下数组的length,以免出现这个异常。
5. java.lang.illegalargumentexception
这个异常的解释是"方法的参数错误",很多j2me的类库中的方法在一些情况下都会引发这样的错误,比如音量调节方法中的音量参数如果写成负数就会出现这个异常,再比如g.setcolor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。
6. java.lang.illegalaccessexception
这个异常的解释是"没有访问权限",当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了package的情况下要注意这个异常。
其他还有很多异常,我就不一一列举了,我要说明的是,一个合格的程序员,需要对程序中常见的问题有相当的了解和相应的解决办法,否则仅仅停留在写程序而不会改程序的话,会极大影响到自己的开发的。关于异常的全部说明,在api里都可以查阅。
算术异常类:ArithmeticExecption
空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
数组负下标异常:NegativeArrayException
数组下标越界异常:ArrayIndexOutOfBoundsException
违背安全原则异常:SecturityException
文件已结束异常:EOFException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
操作数据库异常:SQLException
输入输出异常:IOException
方法未找到异常:NoSuchMethodException
java.lang.AbstractMethodError
抽象方法错误。当应用试图调用抽象方法时抛出。
java.lang.AssertionError
断言错。用来指示一个断言失败的情况。
java.lang.ClassCircularityError
类循环依赖错误。在初始化一个类时,若检测到类之间循环依赖则抛出该异常。
java.lang.ClassFormatError
类格式错误。当Java虚拟机试图从一个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。
java.lang.Error
错误。是所有错误的基类,用于标识严重的程序运行问题。这些问题通常描述一些不应被应用程序捕获的反常情况。
java.lang.ExceptionInInitializerError
初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的static语句段。
java.lang.IllegalAccessError
违法访问错误。当一个应用试图访问、修改某个类的域(Field)或者调用其方法,但是又违反域或方法的可见性声明,则抛出该异常。
java.lang.IncompatibleClassChangeError
不兼容的类变化错误。当正在执行的方法所依赖的类定义发生了不兼容的改变时,抛出该异常。一般在修改了应用中的某些类的声明定义而没有对整个应用重新编译而直接运行的情况下,容易引发该错误。
java.lang.InstantiationError
实例化错误。当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常.
java.lang.InternalError
内部错误。用于指示Java虚拟机发生了内部错误。
java.lang.LinkageError
链接错误。该错误及其所有子类指示某个类依赖于另外一些类,在该类编译之后,被依赖的类改变了其类定义而没有重新编译所有的类,进而引发错误的情况。
java.lang.NoClassDefFoundError
未找到类定义错误。当Java虚拟机或者类装载器试图实例化某个类,而找不到该类的定义时抛出该错误。
java.lang.NoSuchFieldError
域不存在错误。当应用试图访问或者修改某类的某个域,而该类的定义中没有该域的定义时抛出该错误。
java.lang.NoSuchMethodError
方法不存在错误。当应用试图调用某类的某个方法,而该类的定义中没有该方法的定义时抛出该错误。
java.lang.OutOfMemoryError
内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。
java.lang.StackOverflowError
堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误。
java.lang.ThreadDeath
线程结束。当调用Thread类的stop方法时抛出该错误,用于指示线程结束。
java.lang.UnknownError
未知错误。用于指示Java虚拟机发生了未知严重错误的情况。
java.lang.UnsatisfiedLinkError
未满足的链接错误。当Java虚拟机未找到某个类的声明为native方法的本机语言定义时抛出。
java.lang.UnsupportedClassVersionError
不支持的类版本错误。当Java虚拟机试图从读取某个类文件,但是发现该文件的主、次版本号不被当前Java虚拟机支持的时候,抛出该错误。
java.lang.VerifyError
验证错误。当验证器检测到某个类文件中存在内部不兼容或者安全问题时抛出该错误。
java.lang.VirtualMachineError
虚拟机错误。用于指示虚拟机被破坏或者继续执行操作所需的资源不足的情况。
java.lang.ArithmeticException
算术条件异常。譬如:整数除零等。
java.lang.ArrayIndexOutOfBoundsException
数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。
java.lang.ArrayStoreException
数组存储异常。当向数组中存放非数组声明类型对象时抛出。
java.lang.ClassCastException
类造型异常。假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。该异常经常被称为强制类型转换异常。
java.lang.ClassNotFoundException
找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常。
java.lang.CloneNotSupportedException
不支持克隆异常。当没有实现Cloneable接口或者不支持克隆方法时,调用其clone()方法则抛出该异常。
java.lang.EnumConstantNotPresentException
枚举常量不存在异常。当应用试图通过名称和枚举类型访问一个枚举对象,但该枚举对象并不包含常量时,抛出该异常。
java.lang.Exception
根异常。用以描述应用程序希望捕获的情况。
java.lang.IllegalAccessException
违法的访问异常。当应用试图通过反射方式创建某个类的实例、访问该类属性、调用该类方法,而当时又无法访问类的、属性的、方法的或构造方法的定义时抛出该异常。
java.lang.IllegalMonitorStateException
违法的监控状态异常。当某个线程试图等待一个自己并不拥有的对象(O)的监控器或者通知其他线程等待该对象(O)的监控器时,抛出该异常。
java.lang.IllegalStateException
违法的状态异常。当在Java环境和应用尚未处于某个方法的合法调用状态,而调用了该方法时,抛出该异常。
java.lang.IllegalThreadStateException
违法的线程状态异常。当县城尚未处于某个方法的合法调用状态,而调用了该方法时,抛出异常。
java.lang.IndexOutOfBoundsException
索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。
java.lang.InstantiationException
实例化异常。当试图通过newInstance()方法创建某个类的实例,而该类是一个抽象类或接口时,抛出该异常。
java.lang.InterruptedException
被中止异常。当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。

Python常见异常分类与处理

Python常见异常类型大概分为以下类:1.AssertionError:当assert断言条件为假的时候抛出的异常2.AttributeError:当访问的对象属性不存在的时候抛出的异常3.IndexError:超出对象索引的范围时抛出的异常4.KeyError:在字典中查找一个不存在的key抛出的异常5.NameError:访问一个不存在的变量时抛出的异常6.OSError:操作系统产生的异常7.SyntaxError:语法错误时会抛出此异常8.TypeError:类型错误,通常是不通类型之间的操作会出现此异常9.ZeroDivisionError:进行数学运算时除数为0时会出现此异常关于更多异常请参考官方文档:2.7版本链接3.6版本链接Python异常处理:例1:出现异常最简单处理方法?123456789101112#!/usr/bin/python#coding:utf8#try与except结合用法a=1b=2tryassertab#如果ab判断为假时将抛出AssertionError异常exceptAssertionError:#如果捕获到AssertionError异常将执行except下面的代码块print(ab)上面例子输出结果为 ab为假,这时候会抛出AssertionError异常,当捕获到此异常后就会执行except代码块中的语句例2:使用多个except捕获异常?12345678910111213141516#!/usr/bin/python#coding:utf8#try与多个except结合用法,在try代码块中依次执行,只要捕获到异常就停止执行<code style="border-left-color: rgb(108, 226, 108); border-left-width: 3px; border-left-style: solid; padding: 0px 0px 0px 5px; line-height: 20px; margin: 3px auto 0px; width: 640px; clear: both; border-radius: 0px; box-sizing: content-box !important; position: static !important; border-right-width: 0px !important; outline: invert none 0px !important; min-height: auto !important; bottom: auto !important; font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace !important; float: none !important; border-top-width: 0px !important; border-bottom-width: 0px !important; height: auto !important; vertical-align: baseline !important; overflow: visible !important; top: auto !important; right: auto !important; left: auto !important; background-image

“java assertionerror”是什么异常?

<code style="border-left-color: rgb(108, 226, 108); border-left-width: 3px; border-left-style: solid; padding: 0px 0px 0px 5px; line-height: 20px; margin: 3px auto 0px; width: 640px; clear: both; border-radius: 0px; box-sizing: content-box !important; position: static !important; border-right-width: 0px !important; outline: invert none 0px !important; min-height: auto !important; bottom: auto !important; font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace !important; float: none !important; border-top-width: 0px !important; border-bottom-width: 0px !important; height: auto !important; vertical-align: baseline !important; overflow: visible !important; top: auto !important; right: auto !important; left: auto !important; background-image

java.lang.AssertionError异常大致类似于下图所示:
第一步,右键module—选择open module settings。
第二步,在左侧找到Modules并选中。
第三步,在右侧设置Module SDK版本。
第四步,在左侧找到SDKs并选中。
第五步,在中间栏任意选中一个sdk—右边的bulid target这里可能出现的是none,修改一下确定即可。
“java assertionerror”异常的解释是"程序遇上了空指针"。简单地说,就是调用了未经初始化的对象或者是不存在的对象。这个错误经常出现在创建图片,调用数组这些操作中,比如:图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化。(如果要调用的话)

<code style="border-left-color: rgb(108, 226, 108); border-left-width: 3px; border-left-style: solid; padding: 0px 0px 0px 5px; line-height: 20px; margin: 3px auto 0px; width: 640px; clear: both; border-radius: 0px; box-sizing: content-box !important; position: static !important; border-right-width: 0px !important; outline: invert none 0px !important; min-height: auto !important; bottom: auto !important; font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace !important; float: none !important; border-top-width: 0px !important; border-bottom-width: 0px !important; height: auto !important; vertical-align: baseline !important; overflow: visible !important; top: auto !important; right: auto !important; left: auto !important; background-image

报错:AssertionError:torch not compiled with cuda enabled
<code style="border-left-color: rgb(108, 226, 108); border-left-width: 3px; border-left-style: solid; padding: 0px 0px 0px 5px; line-height: 20px; margin: 3px auto 0px; width: 640px; clear: both; border-radius: 0px; box-sizing: content-box !important; position: static !important; border-right-width: 0px !important; outline: invert none 0px !important; min-height: auto !important; bottom: auto !important; font-family: Consolas, Bitstream Vera Sans Mono, Courier New, Courier, monospace !important; float: none !important; border-top-width: 0px !important; border-bottom-width: 0px !important; height: auto !important; vertical-align: baseline !important; overflow: visible !important; top: auto !important; right: auto !important; left: auto !important; background-image

这种情况就是自己的设置运行设备为GPU 但是本地的机子有没有GPU

有两种方法。一般会在初始化的时候就设置了是否用GPU

改成使用 CPU就行

第二种就是

在加载模型的时候 看到 load

看到就变成上边的形式就行了

python错误?

异常名称 异常说明
AssertionError 断言语句(assert)失败
AttributeError 尝试访问未知的对象属性
EOFError 用户输入文件末尾标志EOF(Ctrl+d)
FloatingPointError 浮点计算错误
GeneratorExit generator.close()方法被调用的时候
ImportError 导入模块失败的时候
IndexError 索引超出序列的范围
KeyError 字典中查找一个不存在的关键字
KeyboardInterrupt 用户输入中断键(Ctrl+c)
MemoryError 内存溢出(可通过删除对象释放内存)
NameError 尝试访问一个不存在的变量
NotImplementedError 尚未实现的方法
OSError 操作系统产生的异常(例如打开一个不存在的文件)
OverflowError 数值运算超出最大限制
ReferenceError 弱引用(weak reference)试图访问一个已经被垃圾回收机制回收了的对象
RuntimeError 一般的运行时错误
StopIteration 迭代器没有更多的值
SyntaxError Python的语法错误
IndentationError 缩进错误
TabError Tab和空格混合使用
SystemError Python编译器系统错误
SystemExit Python编译器进程被关闭
TypeError 不同类型间的无效操作
UnboundLocalError 访问一个未初始化的本地变量(NameError的子类)
UnicodeError Unicode相关的错误(ValueError的子类)
UnicodeEncodeError Unicode编码时的错误(UnicodeError的子类)
UnicodeDecodeError Unicode解码时的错误(UnicodeError的子类)
UnicodeTranslateError Unicode转换时的错误(UnicodeError的子类)
ValueError 传入无效的参数
ZeroDivisionError 除数为零

assert用法

assert是Python语言中的一个关键字,它用于判断一个条件是否为真,如果为假,就会抛出AssertionError异常。
assert的语法格式为:
其中,条件是需要判断的表达式,如果为False,那么就会抛出AssertionError并输出错误信息。
assert的用法在程序调试以及测试中非常有用,可以快速判断一个表达式的值是否符合预期,并及时发现错误。在编码过程中,我们可以通过assert来保证一些条件的正确性,提高程序的健壮性和可维护性。
例如,我们可以在一个函数的开头加入assert语句,判断函数的传入参数是否合法,如下所示:
这样的话,在函数调用时,如果传入的参数不是整数,就会抛出AssertionError异常,提醒我们进行调试和修正。

流水账---记一次debug经历AssertionError: Gather function not implemented for CPU tensors

如题,首先报了如下错误:
AssertionError: Gather function not implemented for CPU tensors
我心想,这不是dp的时候的问题出错了吗,正好趁这个时机研究下pytorch做并行的内核方式。
于是首先查看了
anaconda3/envs/torch1.7/lib/python3.8/site-packages/torch/nn/parallel/scatter_gather.py
又查看了
anaconda3/envs/torch1.7/lib/python3.8/site-packages/torch/nn/parallel/_functions.py
还查看了
/cfs/doxu/software/anaconda3/envs/torch1.7/lib/python3.8/site-packages/torch/nn/parallel/data_parallel.py
最后发现了一篇有用的帖子,终于弄懂了pytorch的dp实现,以后可以写个小demo。
[PyTorch 源码解读之 DP & DDP:模型并行和分布式训练解析]https://zhuanlan.zhihu.com/p/343951042

弄懂完原理之后,就开始定位bug所在。传入gather的数据不对,那么传入这里我gather的tensor是什么?很显然是loss,恰巧loss是我自己改的,所以很有可能bug出在这里,于是我打印loss的device,发现是tuple,喔,原来是最后的[0]忘了加,导致我的loss是由tensor组成的tuple,而python对于tuple的处理机制是存储在内存中,内存这一块显然属于cpu不属于gpu,所以报错我有的tensor在cpu上,添加[0],解决问题。

PS,以后还是不要用tuple了,用dict好一点,毕竟内存消耗list>tuple>dict
【list最大是因为list是动态的,它需要存储指针来指向对应的元素。另外,因为列表是可变的,为了保存插入
的高效,一般会预留额外的存储空间,因此就需要记录实时的空间使用情况,当空间不足时,额外再分配空间】

pthon 中获取数据库中的值用于断言中时报错,该怎么解决,具体信息如下:

这个问题是如何在一些场景下使用断言表达式,通常会有人误用它,所以我决定写一篇文章来说明何时使用断言,什么时候不用。
为那些还不清楚它的人,Python的assert是用来检查一个条件,如果它为真,就不做任何事。如果它为假,则会抛出AssertError并且包含错误信息。例如:
py> x = 23
py> assert x > 0, "x is not zero or negative"
py> assert x%2 == 0, "x is not an even number"
Traceback (most recent call last):
File "", line 1, in
AssertionError: x is not an even number
很多人用assert作为一个很快和容易的方法来在参数错误的时候抛出异常。但这样做是错的,非常错误,有两个原因。首先AssertError不是在测试参数时应该抛出的错误。你不应该像这样写代码:
if not isinstance(x, int):
raise AssertionError("not an int")
你应该抛出TypeError的错误,assert会抛出错误的异常。
但是,更危险的是,有一个关于assert的困扰:它可以被编译好然后从来不执行,如果你用 –O 或 –oo
选项运行Python,结果不保证assert表达式会运行到。当适当的使用assert时,这是未来,但是当assert不恰当的使用时,它会让代码用
-O执行时出错。
那什么时候应该使用assert?没有特定的规则,断言应该用于:
防御型的编程
运行时检查程序逻辑
检查约定
程序常量
检查文档
(在测试代码的时候使用断言也是可接受的,是一种很方便的单元测试方法,你接受这些测试在用-O标志运行时不会做任何事。我有时在代码里使用
assert False来标记没有写完的代码分支,我希望这些代码运行失败。尽管抛出NotImplementedError可能会更好。)
关于断言的意见有很多,因为它能确保代码的正确性。如果你确定代码是正确的,那么就没有用断言的必要了,因为他们从来不会运行失败,你可以直接移除这些断言。如果你确定检查会失败,那么如果你不用断言,代码就会通过编译并忽略你的检查。
在以上两种情况下会很有意思,当你比较肯定代码但是不是绝对肯定时。可能你会错过一些非常古怪的情况。在这个情况下,额外的运行时检查能帮你确保任何错误都会尽早地被捕捉到。
另一个好的使用断言的方式是检查程序的不变量。一个不变量是一些你需要依赖它为真的情况,除非一个bug导致它为假。如果有bug,最好能够尽早发现,所以我们为它进行一个测试,但是又不想减慢代码运行速度。所以就用断言,因为它能在开发时打开,在产品阶段关闭。
一个非变量的例子可能是,如果你的函数希望在它开始时有数据库的连接,并且承诺在它返回的时候仍然保持连接,这就是函数的不变量:
Python
def some_function(arg):
assert not DB.closed()
... # code goes here
assert not DB.closed()
return result
断言本身就是很好的注释,胜过你直接写注释:
# when we reach here, we know that n > 2
你可以通过添加断言来确保它:
assert n > 2
断言也是一种防御型编程。你不是让你的代码防御现在的错误,而是防止在代码修改后引发的错误。理想情况下,单元测试可以完成这样的工作,可是需要面
对的现实是,它们通常是没有完成的。人们可能在提交代码前会忘了运行测试代码。有一个内部检查是另一个阻挡错误的防线,尤其是那些不明显的错误,却导致了
代码出问题并且返回错误的结果。
加入你有一些if…elif 的语句块,你知道在这之前一些需要有一些值:
# target is expected to be one of x, y, or z, and nothing else.
if target == x:
run_x_code()
elif target == y:
run_y_code()
else:
run_z_code()
假设代码现在是完全正确的。但它会一直是正确的吗?依赖的修改,代码的修改。如果依赖修改成 target = w
会发生什么,会关系到run_w_code函数吗?如果我们改变了代码,但没有修改这里的代码,可能会导致错误的调用 run_z_code
函数并引发错误。用防御型的方法来写代码会很好,它能让代码运行正确,或者立马执行错误,即使你在未来对它进行了修改。
在代码开头的注释很好的一步,但是人们经常懒得读或者更新注释。一旦发生这种情况,注释会变得没用。但有了断言,我可以同时对代码块的假设书写文档,并且在它们违反的时候触发一个干净的错误
assert target in (x, y, z)
if target == x:
run_x_code()
elif target == y:
run_y_code()
else:
assert target == z
run_z_code()
这样,断言是一种防御型编程,同时也是一种文档。我想到一个更好的方案:
if target == x:
run_x_code()
elif target == y:
run_y_code()
elif target == z:
run_z_code()
else:
# This can never happen. But just in case it does...
raise RuntimeError("an unexpected error occurred")
按约定进行设计是断言的另一个好的用途。我们想象函数与调用者之间有个约定,比如下面的:
“如果你传给我一个非空字符串,我保证传会字符串的第一个字母并将其大写。”
如果约定被函数或调用这破坏,代码就会出问题。我们说函数有一些前置条件和后置条件,所以函数就会这么写:
def first_upper(astring):
assert isinstance(astring, str) and len(astring) > 0
result = astring[0].upper()
assert isinstance(result, str) and len(result) == 1
assert result == result.upper()
return result
按约定设计的目标是为了正确的编程,前置条件和后置条件是需要保持的。这是断言的典型应用场景,因为一旦我们发布了没有问题的代码到产品中,程序会是正确的,并且我们能安全的移除检查。
下面是建议的不要用断言的场景:
不要用它测试用户提供的数据
不要用断言来检查你觉得在你的程序的常规使用时会出错的地方。断言是用来检查非常罕见的问题。你的用户不应该看到任何断言错误,如果他们看到了,这是一个bug,修复它。
有的情况下,不用断言是因为它比精确的检查要短,它不应该是懒码农的偷懒方式。
不要用它来检查对公共库的输入参数,因为它不能控制调用者,所以不能保证调用者会不会打破双方的约定。
不要为你觉得可以恢复的错误用断言。换句话说,不用改在产品代码里捕捉到断言错误。
不要用太多断言以至于让代码很晦涩。

阅读更多 >>>  javaee是什么,javaee是什么意思

网站数据信息

"assertionerror,python错误?"浏览人数已经达到20次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:assertionerror,python错误?的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!