程序中不捕獲異常導致的問題

當前項目中我主要負責web端的後臺開發,項目開發中需要調用其他人的AI訓練接口,然後拋出了一個python代碼的異常:如下

Traceback (most recent call last):
  File "main.py", line 57, in <module>
    model.train()
  File "/app/algorithm_model/yolo3/train.py", line 63, in train
    annotation_path = image_xml_to_train(self.classes_path, self.image_dir, self.xml_dir, self.negative_image_dir)
  File "/app/tools/voc_annotation.py", line 90, in image_xml_to_train
    b = (int(xmlbox.find('xmin').text), int(xmlbox.find('ymin').text), int(xmlbox.find('xmax').text),
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType;

其他同事的模型訓練的代碼是使用Python來寫的,從這個異常信息中,我能夠知道的信息是在進行int轉換時拋出了異常,其他的都不知道了。那些xml文件總共有300多個,這個怎麼查找錯誤信息呢,我是沒有獲取到其他有用的信息。比如xml的名稱叫什麼,或者其他關鍵信息等等,這個找起來,真的有些棘手,主要原因是沒有其他關鍵信息。而且這個異常是被動拋出的,不是開發者主動拋出的,這就更加不好查找。

       從這裏得出一個經驗,在寫代碼時,對於這種需要大量讀取文件的代碼,如果可能會拋出異常,則一定要將可查找錯誤信息的關鍵信息丟到異常信息中,不然查找起來會非常麻煩。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章