• 异常处理


    异常处理

    • 语法错误
      • 无法通过异常处理解决
      • 因为语法错误程序无法运行代码不执行
    • 逻辑错误
      • 数学逻辑出错1/0
      • 字典索引错误
      • 列表索引错误等
    • 程序一但发生错误,就会停止运行
    • 异常处理就是忽略这些逻辑上的错误,然后返回一个理想上的结果

    异常处理语句

    • except支持多分枝

    • except后面的错误类型可以不写

        try:
        	'''需要测试的代码块'''
        	
        except 错误类型[可选]:
        	'''错误后返回的代码块'''
        	
        except 错误类型[可选]:
      
    • else没有异常的情况下执行else后的代码块

        try:
        	'''需要测试的代码块'''
        
        except 错误类型[可选]:
        	'''错误后返回的代码块'''
        
        else:
        	'''try中没有错误就会执行这里'''
      
    • finally有没有错误最后都会执行

      • 比如文件的关闭最后都要执行

          try:
          	'''需要测试的代码块'''
          
          except 错误类型[可选]:
          	'''错误后返回的代码块'''
          
          else:
          	'''try中没有错误就会执行这里'''
          
          finally:
          	'''不管有没有异常都会执行的代码块'''
        
    • 函数中returnfinally

      • return也会继续执行finally中的代码块

      • return不会继续执行else中的代码块

          def func():
          try:
          	print('测试')
          	return
          except Exception:
          	print('错了')
          else:
          	print('完全ojbk')
          finally:
          	print('测试执行')
          #调用
          func()
          #结果
          测试
          测试执行
        
    • except Exception处理万能异常

      • except Exception as error_name提供的报错机制

          def func():
          try:
          	ss	#提供一个错误的信息
          	print('测试')
          	return
          except Exception as error:
          	print('错了', error)
          else:
          	print('完全ojbk')
          #调用
          func()
          #结果
          错了 name 'ss' is not defined
  • 相关阅读:
    [BZOJ3105][CQOI2013]新Nim游戏
    [BZOJ4592][SHOI2015]脑洞治疗仪
    [BZOJ3551][ONTAK2010]Peaks加强版
    [BZOJ2229][ZJOI2011]最小割
    [BZOJ4519][CQOI2016]不同的最小割
    [BZOJ3532][SDOI2014]LIS
    [BZOJ2668][CQOI2012]交换棋子
    [BZOJ3504][CQOI2014]危桥
    Java抽象类
    Java方法覆盖重写
  • 原文地址:https://www.cnblogs.com/liliudong/p/9599176.html
Copyright © 2020-2023  润新知