- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发布了相关问题Is there a method to help make this Python logic run faster几天前,在获得确认的解决方案后,我扩展了这个逻辑以满足我的测试需求。
由于某种原因,我不知道如何告诉这个Python,如果它得到AssertionError
,它正在运行。打印出Assertion Error
然后continue
再次回到逻辑。
from cpppo.server.enip.get_attribute import proxy_simple
from datetime import datetime
import time, csv, sys
host = "<PLC IP Address>"
TagName = "Tag Name"
RootCsvFile = "X:\\Some\\Folder\\Path\\"
source = proxy_simple(host)
prev = None
def csvwrite(v):
with open(v[2],"a",newline='') as file:
csv_file = csv.writer(file)
csv_file.writerow([v[0],v[1]])
def ExecLoop(pr):
prev = pr
while True:
for message in source.read(TagName):
try:
val = message[0]
timestr = str(datetime.now())
if val != prev:
prev = val
YYYYMMDD = datetime.today().strftime('%Y%m%d')
CsvFile = RootCsvFile + TagName + "_" + YYYYMMDD + ".csv"
print(timestr, val, CsvFile)
csvwrite([timestr, val, CsvFile])
except AssertionError:
print("Assertion Error")
continue
ExecLoop(prev)
<小时/>
由于这是通过 VPN 连接从 PLC 机器网络获取数据,因此每当 VPN 中断且无法通过 Python 访问时,就会出现以下错误,看起来像 except AssertionError:
没有执行我要求它执行的操作,只是收到错误:
Traceback (most recent call last): File
"~\GetTag-ToSQLDB&CSVEFile.py", line 63, in <module>
ExecLoop(prev) File "~\GetTag-ToSQLDB&CSVEFile.py", line 46, in ExecLoop
for message in source.read(TagName): File "~\Python\Python36-32\lib\site-packages\cpppo\server\enip\get_attribute.py",
line 431, in read
for val,(sts,(att,typ,uni)) in reader: File "~\Python\Python36-32\lib\site-packages\cpppo\server\enip\get_attribute.py",
line 606, in read_details
depth=self.depth, multiple=self.multiple, timeout=self.timeout )): File
"~\Python\Python36-32\lib\site-packages\cpppo\server\enip\client.py",
line 1393, in operate
for idx,dsc,req,rpy,sts,val in harvested: File "~\Python\Python36-32\lib\site-packages\cpppo\server\enip\client.py",
line 1270, in pipeline
complete, requests )
AssertionError: Communication ceased before harvesting all pipeline responses: 0/ 1
我希望它在出现 AssertionError
时继续重试因为通常当出现连接问题时,Python 运行的 VPN 客户端上的网络设备每周会自动重新启动一次,只有短短的几秒或几分钟的时间。
我的问题:我怎样才能获得 except AssertionError:
这个过程中的逻辑是打印一些东西,然后返回并再次尝试循环或其他什么?
我的假设
我假设问题与:
AssertionError
client.py
中定义的处理回溯错误中指定的文件,并取代脚本 except AssertionError:
脚本中的逻辑。
Try:
和Exception:
逻辑在 while True
内循环,然后在 for
内while True
内循环循环。
此进程正在使用 cpppo包。
我正在使用Python版本3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)]
以及Windows 10。
我正在从 IDLE
运行此进程因为我正在测试而不是作为编译包或类似的东西。所以我发布的逻辑保存为py
文件,然后在IDLE
中打开时我按 F5
执行它.
“假设”相关client.py
与AssertionError
相关的逻辑(参见第 1269 行):
最佳答案
AssertionError
发生在 source.read(TagName)
调用中。你需要用你的 try
except
block 来包装它:
while True:
try:
for message in source.read(TagName): # Note that this connection might be broken after the error.
val = message[0]
timestr = str(datetime.now())
if val != prev:
prev = val
YYYYMMDD = datetime.today().strftime('%Y%m%d')
CsvFile = RootCsvFile + TagName + "_" + YYYYMMDD + ".csv" print(timestr, val, CsvFile)
csvwrite([timestr, val, CsvFile])
except AssertionError:
print("Assertion Error")
continue
关于python - 为什么这个 AssertionError 异常不继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49926077/
我在一个Spring Boot应用程序中有以下路线。并进行以下测试。第二个测试的目的是验证如果将消息“{}”发送到DIRECT:LOG终结点,它将超出To(Bean-validator://check
这是我的简单 test.py 脚本: import argparse parser = argparse.ArgumentParser('A long string that goes on and
我在Android Studio的另一台计算机上打开我的Kotlin项目,并在事件日志中遇到错误: AssertionError: Root package must be initialized R
我在redux (redux@3.7.2) 中使用combineReducer 方法时遇到错误。当我只使用一个 reducer 时,相同的代码将起作用。 Running code here 代码 co
我目前正在对我的 Controller 的一个方法进行单元测试。只是尝试测试该方法是否返回正确的字符串。 @RequestMapping(value = "/createTestscenario",
我收到错误: java.lang.AssertionError: expected: learning.java.advancedoop2.MyComplex but was: learning.ja
这个问题在这里已经有了答案: How can I check if two ArrayList differ, I don't care what's changed (6 个答案) 关闭 7 年前
我正在准备 OCP 7,我在其中一本证书书上遇到了这篇文章。 To discourage you from trying to substitute an assertion for an excep
我有一个 index.js 文件,它实现了一个 forEach 助手,如下所示: var images = [ { height: 10, width: 30 }, { height: 20,
作为实验,我 try catch 失败的断言。 try: assert 1==2 except Exception as e: print e 为什么没有显示? 最佳答案 >>> try: asser
我在 django 中创建了一个调用函数的命令。该函数执行 django orm 调用: def get_notes(): notes = Note.objects.filter(number
我有一个用户类和一个主题类。用户类可以创建一个主题,将一个主题添加到主题的字典中,并且应该能够返回主题的字典。我是 python 的新手,所以我在 python 逻辑/语法方面遇到了问题 class
我正在尝试创建一个基于用户身份验证限制结果的 View 。出于某种原因,列表切片总是导致 AssertionError Cannot filter a query once a slice has b
我正在使用带有注释处理器的内部 sun API (com.sun.tools.javac) 修改现有类。我能够使用以下代码生成 MethodDecl 并将其添加到 ClassDecl: JCTree.
这是原代码 //@author Brian Goetz and Tim Peierls @ThreadSafe public class SafePoint { @GuardedBy("thi
我能够访问 PasswordChangeSerializer 的 validate() 函数的 user_queryset,但是我仍然收到此错误: assert value is not None,
我正在尝试从破解编码面试中回答以下问题。下面的代码是 GitHub 上一个项目的一部分,here . Given a binary search tree, design an algorithm w
我正在使用 IBM Bluemix 为学校项目创建 Web 服务。 我设置了本地主机来运行我的代码,但是当我在 Windows 10 命令提示符中键入“npm start”时,我遇到了“assert.
将 tf.Dataset 传递到 tf.Keras 模型的 fit() 时,我收到 AssertionError方法。 我正在使用tensorflow==2.0.0。 我检查了我的数据集是否有效: #
我有一个异步回调,我为此编写了一个 junit 测试用例。我正在遵循 CountDownLatch 方法。如果回调失败,我必须使测试用例失败。这是我的代码 lock = new CountDo
我是一名优秀的程序员,十分优秀!