毫无例外地尝试每一行过早地破坏代码
Try every line without exception prematurely breaking code
我想编写一个 try-except 语句,它能够 运行 多个 try 语句而不破坏代码。
s = "hello, this is a string."
以上面的字符串为例:
ls = []
try:
ls.append(s.split())
ls.append(s.str.split()) # expected error
ls.append(s.split(","))
ls.append(s.split("i"))
except:
pass
以上是我最初尝试的,但代码在第二个 try 语句处停止。
ls = []
try:
ls.append(s.split())
except:
pass
try:
ls.append(s.str.split()) # expected error
except:
pass
try:
ls.append(s.split(","))
except:
pass
try:
ls.append(s.split("i"))
except:
pass
最终,我能够使用上述代码将所有字符串附加到列表中。有没有比编写单独的 try-except 语句更好的方法?
据我了解,当 try 语句中发生错误时,它将立即转到 except 语句,这就是为什么您的代码在第二个 try 语句后不执行的原因。
虽然您的问题可能有更好的解决方案,但这是我针对您的问题的尝试:
ls = []
char=[' ',',','i']
for i in char:
try:
ls.append(s.split(i))
ls.append(s.str.split(i))
except:
pass
print(ls)
您可以使用 fuckit 模块。
使用 @fuckit
装饰器将您的代码包装在一个函数中:
import fuckit
@fuckit
def func():
code a
code b #if b fails, it should ignore, and go to c.
code c #if c fails, go to d
code d
或者你可以试试这个:
def a():
try: # a code
except: pass # or raise
else: return True
def b():
try: # b code
except: pass # or raise
else: return True
def c():
try: # c code
except: pass # or raise
else: return True
def d():
try: # d code
except: pass # or raise
else: return True
def main():
try:
a() and b() or c() or d()
except:
pass
我想编写一个 try-except 语句,它能够 运行 多个 try 语句而不破坏代码。
s = "hello, this is a string."
以上面的字符串为例:
ls = []
try:
ls.append(s.split())
ls.append(s.str.split()) # expected error
ls.append(s.split(","))
ls.append(s.split("i"))
except:
pass
以上是我最初尝试的,但代码在第二个 try 语句处停止。
ls = []
try:
ls.append(s.split())
except:
pass
try:
ls.append(s.str.split()) # expected error
except:
pass
try:
ls.append(s.split(","))
except:
pass
try:
ls.append(s.split("i"))
except:
pass
最终,我能够使用上述代码将所有字符串附加到列表中。有没有比编写单独的 try-except 语句更好的方法?
据我了解,当 try 语句中发生错误时,它将立即转到 except 语句,这就是为什么您的代码在第二个 try 语句后不执行的原因。
虽然您的问题可能有更好的解决方案,但这是我针对您的问题的尝试:
ls = []
char=[' ',',','i']
for i in char:
try:
ls.append(s.split(i))
ls.append(s.str.split(i))
except:
pass
print(ls)
您可以使用 fuckit 模块。
使用 @fuckit
装饰器将您的代码包装在一个函数中:
import fuckit
@fuckit
def func():
code a
code b #if b fails, it should ignore, and go to c.
code c #if c fails, go to d
code d
或者你可以试试这个:
def a():
try: # a code
except: pass # or raise
else: return True
def b():
try: # b code
except: pass # or raise
else: return True
def c():
try: # c code
except: pass # or raise
else: return True
def d():
try: # d code
except: pass # or raise
else: return True
def main():
try:
a() and b() or c() or d()
except:
pass