mojo
mojo copied to clipboard
[BUG]: Try/Except handling in fn function
Bug description
Try/Except into the code attached sometimes works
Steps to reproduce
Try/Except into the code attached first time it works and after it gives error:
fn foo(a: Int) -> object:
if a == 0:
print("zero")
elif a > 0 and a < 9 or a < 0:
print("small")
elif a >= 9:
print("big")
return a
try:
a = "k"
foo(a)
except:
print("Something went wrong")
With def instead of fn it works ever:
def foo(a) -> object:
if a == 0:
print("zero")
elif a > 0 and a < 9 or a < 0:
print("small")
elif a >= 9:
print("big")
try:
a = "k"
foo(a)
except:
print("Something went wrong")
System information
11:devices:/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod21dda461_a454_49ae_981c_cf636fef854b.slice/cri-containerd-842eb458ffc768912ff334117f9b6dfd2a241ed011305d59e551aa79fa08f8b9.scope
10:cpu,cpuacct:/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod21dda461_a454_49ae_981c_cf636fef854b.slice/cri-containerd-842eb458ffc768912ff334117f9b6dfd2a241ed011305d59e551aa79fa08f8b9.scope
9:blkio:/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod21dda461_a454_49ae_981c_cf636fef854b.slice/cri-containerd-842eb458ffc768912ff334117f9b6dfd2a241ed011305d59e551aa79fa08f8b9.scope
8:hugetlb:/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod21dda461_a454_49ae_981c_cf636fef854b.slice/cri-containerd-842eb458ffc768912ff334117f9b6dfd2a241ed011305d59e551aa79fa08f8b9.scope
7:pids:/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod21dda461_a454_49ae_981c_cf636fef854b.slice/cri-containerd-842eb458ffc768912ff334117f9b6dfd2a241ed011305d59e551aa79fa08f8b9.scope
6:cpuset:/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod21dda461_a454_49ae_981c_cf636fef854b.slice/cri-containerd-842eb458ffc768912ff334117f9b6dfd2a241ed011305d59e551aa79fa08f8b9.scope
5:net_cls,net_prio:/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod21dda461_a454_49ae_981c_cf636fef854b.slice/cri-containerd-842eb458ffc768912ff334117f9b6dfd2a241ed011305d59e551aa79fa08f8b9.scope
4:perf_event:/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod21dda461_a454_49ae_981c_cf636fef854b.slice/cri-containerd-842eb458ffc768912ff334117f9b6dfd2a241ed011305d59e551aa79fa08f8b9.scope
3:freezer:/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod21dda461_a454_49ae_981c_cf636fef854b.slice/cri-containerd-842eb458ffc768912ff334117f9b6dfd2a241ed011305d59e551aa79fa08f8b9.scope
2:memory:/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod21dda461_a454_49ae_981c_cf636fef854b.slice/cri-containerd-842eb458ffc768912ff334117f9b6dfd2a241ed011305d59e551aa79fa08f8b9.scope
1:name=systemd:/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod21dda461_a454_49ae_981c_cf636fef854b.slice/cri-containerd-842eb458ffc768912ff334117f9b6dfd2a241ed011305d59e551aa79fa08f8b9.scope
0::/
Thanks for filing. I'll take a look soon
a = "k"
foo(a)
This is failing in an fn
because the string cannot be implicitly converted to Int
in the function call. It works for def
because the object type is failing a == 0
.