Azure / Azure/azure-functions-java-worker

Exceptions in static blocks blocks not caught/recorded

Ouverte
#295 2 commentaires 0 réactions 1 personne assignée Assignée à @kaibocai Voir sur GitHub
area:java-functions Bug P2 reviewed
Langage dominant
Java
Étoiles
103
Forks
74
Merge moyen
4 j 8 h
PR mergées (30 j)
2

Description

When an exception occurs in a static initialization, it is not logged in AppInsights.

#### Investigative information

Please provide the following:

- Timestamp: 2019-06-21T17:48:38.384
- Invocation ID: `48d86a7c24b1354196e9c0c9b6ee7d19`
- Region: Central US

#### Repro steps
Here's a sample function to reproduce:

```java
package com.yevster;

import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Optional;

import com.microsoft.azure.functions.ExecutionContext;
import com.microsoft.azure.functions.HttpMethod;
import com.microsoft.azure.functions.HttpRequestMessage;
import com.microsoft.azure.functions.HttpResponseMessage;
import com.microsoft.azure.functions.HttpStatus;
import com.microsoft.azure.functions.annotation.AuthorizationLevel;
import com.microsoft.azure.functions.annotation.FunctionName;
import com.microsoft.azure.functions.annotation.HttpTrigger;

public class ProtoFunction {
static {
//Puke!
Optional.empty().orElseThrow(()->new RuntimeException("Life isn't fair!"));
}

@FunctionName("prototype")
public HttpResponseMessage run(@HttpTrigger(name = "req", methods = {
HttpMethod.GET }, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage> request,
final ExecutionContext context) throws MalformedURLException, IOException {

return request.createResponseBuilder(HttpStatus.OK).header("Content-Type", "text/html").body("

Rejoice! All is well!

").build();
}
}

```
And here's what AppInsights shows when queried for all exceptions and trace messages after invocation of that function:

[![noexceptionlogged.jpg](https://i.postimg.cc/Fsccphhv/noexceptionlogged.jpg)](https://postimg.cc/7fHfY8Ct)

#### Expected behavior

Provide a description of the expected behavior.

The exception thrown from the static block is recorded in App Insights.

#### Actual behavior

The exception thrown from the static block is **not** recorded in App Insights.

#### Known workarounds

Do not use any static code.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.