aboutcode-org / aboutcode-org/purldb

NameError: 'e' referenced outside except block in visit_uri() when visit_error is set

オープン
#851 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
HTML
スター
67
フォーク
69
平均マージ
8日 8時間
マージ済み PR(30日)
1

説明

**Description**

In `visit_uri()` within `minecode/management/commands/run_visit.py`, the exception variable `e` is referenced outside the `except` block where it is defined.

Inside the `try/except` block, the variable `e` is created only when an exception occurs:

```python
except (ConnectionError, Timeout, Exception) as e:
msg = f"Visit error for URI: {uri_to_visit}"
msg += "\n".format()
msg += get_error_message(e)
visit_errors.append(msg)
logger.error(msg)
```

Later in the function, `e` is used again inside the `if visit_error:` block:

```python
if visit_error:
msg = f"Visit error for URI: {uri_to_visit}"
msg += "\n".format()
msg += get_error_message(e) # NOQA
```

However, this block can execute even when no exception was raised. In such cases, the variable `e` is not defined, which results in a runtime error:

```
NameError: name 'e' is not defined
```

This happens when `_visit_router.process(uri_to_visit)` returns a `visit_error` value without raising an exception.

Additionally, the `# NOQA` comment suppresses lint warnings that would otherwise highlight this issue.

To fix this, the code should avoid referencing `e` outside the `except` block and instead use the `visit_error` value or store the exception in a variable defined before the `try` block.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。