From f2d04788a886a394f1567ba91d59ce665cf9673e Mon Sep 17 00:00:00 2001 From: EterIll Date: Mon, 1 Jun 2026 02:03:06 +0000 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=E3=80=8Cweek12=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- week12/ex5.py | 22 ++++++++++++++++++++++ week12/ex6.py | 21 +++++++++++++++++++++ week12/ex7.py | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 week12/ex5.py create mode 100644 week12/ex6.py create mode 100644 week12/ex7.py diff --git a/week12/ex5.py b/week12/ex5.py new file mode 100644 index 0000000..00e2cf8 --- /dev/null +++ b/week12/ex5.py @@ -0,0 +1,22 @@ +from continueanyway import ca + +def handleKBI(lmbd): + def runlambda(*args,**kwargs): + try: + return lmbd(*args,**kwargs) + except KeyboardInterrupt: + print("\nKeyboardInterrupt detected!") + return runlambda + +@handleKBI +def inputIE(*args,**kwargs): + return input(*args,**kwargs) + +def main(): + l1 = inputIE("pls input sth") + print(l1) + + return 0 + +if __name__ == '__main__': + main() diff --git a/week12/ex6.py b/week12/ex6.py new file mode 100644 index 0000000..902d0bf --- /dev/null +++ b/week12/ex6.py @@ -0,0 +1,21 @@ +from continueanyway import ca + +def handleArithmeticError(lmbd): + def runlambda(*args,**kwargs): + try: + return lmbd(*args,**kwargs) + except ArithmeticError: + print("ArithmeticError detected!") + return runlambda + +@handleArithmeticError +def div(a,b): + return a/b + +def main(): + print(div(1,0)) + + return 0 + +if __name__ == '__main__': + main() diff --git a/week12/ex7.py b/week12/ex7.py new file mode 100644 index 0000000..ba59257 --- /dev/null +++ b/week12/ex7.py @@ -0,0 +1,34 @@ +from continueanyway import ca + +def handleAttrError(lmbd): + def NoneR(*args,**kwargs): + return None + def runlambda(*args,**kwargs): + try: + return lmbd(*args,**kwargs) + except AttributeError: + print("AttributeError detected!") + return NoneR + return runlambda + +class listIE(list): + def __init__(self, iterable): + super().__init__(iterable) + + @handleAttrError + def __getattribute__(self, name): + return super().__getattribute__(name) + + @handleAttrError + def __call__(self, *args, **kwds): + return super().__call__(*args, **kwds) + +def main(): + l1 = listIE([1,2,3]) + print(l1.popp(1)) + print(l1.pop(1)) + + return 0 + +if __name__ == '__main__': + main()