【问题标题】:use of try and except in python在 python 中使用 try 和 except
【发布时间】:2025-12-12 23:55:02
【问题描述】:

我最近听说在 python 中使用语句处理异常的可能性

try:

except  WhateverError:

我只是想知道在定义下一个类时使用它是否是个好主意。 它应该代表一个地形。矩阵的每个数字代表它的一个坐标,数字就是该坐标的高度。

class base_terreny(object):
    # create default mxn terrain #

    def __init__(self, rows, columns):
        self.rows=rows
        self.columns=columns
        self.terrain=[[0]*columns for _ in range(rows)]


    def __getitem__(self, pos): #return height of coordinate
        try:
            return self.terrain[pos[1]][pos[0]]
        except (IndexError,TypeError):
            return 0


    def __setitem__(self, pos, h): #set height
        try:
            self.terrain[pos[1]][pos[0]]=h
        except (IndexError,TypeError):
            return None

或者这样做会更好:

if pos[0]<=self.columns and pos[1]<=self.rows:       
   self.terrain[pos[1]][pos[0]]=h

【问题讨论】:

标签: python class try-catch except


【解决方案1】:

这两种方式都可以接受,但是使用第二种方式可能更干净。虽然异常通常很有用,但您实际上尝试使用异常进行测试的是第二种技术。虽然在这种情况下确实无关紧要,但通常认为使用 if 语句更好,除非您实际上试图以不同的方式处理错误。在不同的情况下,除了您要测试的内容之外,可能还有其他事情可能会触发错误。

【讨论】: