aboutcode-org / aboutcode-org/purldb

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

Aberta
#851 0 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
HTML
Estrelas
67
Forks
69
Merge médio
8d 8h
PRs com merge (30d)
1

Descrição

**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.

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.