Skip to content

Exceptions in static blocks blocks not caught/recorded #295

Open
@yevster

Description

@yevster

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:

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<Optional<byte[]>> request,
			final ExecutionContext context) throws MalformedURLException, IOException {
	
		return request.createResponseBuilder(HttpStatus.OK).header("Content-Type", "text/html").body("<html><body><h1>Rejoice! All is well!</h1></body></html>").build();
	}
}

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

noexceptionlogged.jpg

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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions