Giter VIP home page Giter VIP logo

Comments (5)

srinivasankavitha avatar srinivasankavitha commented on August 16, 2024 1

I see, yes, we can very well do that.

from dgs-framework.

srinivasankavitha avatar srinivasankavitha commented on August 16, 2024

Hi - actually you need to wrap the throwing of the exception in a DataFetcher and return that. This will allow the default exception handler to trigger and do the needful. You can also add your own custom exception handler if you want more control over the result.

public @NotNull DataFetcher<?> instrumentDataFetcher(DataFetcher<?> dataFetcher, InstrumentationFieldFetchParameters parameters, InstrumentationState state) {
        if (true) {
            return DataFetcher -> {
                throw new NullPointerException("I made an oopsie");
            };

        }
        return super.instrumentDataFetcher(dataFetcher, parameters, state);
    }

Will result in the following:

  "errors": [
    {
      "message": "java.lang.NullPointerException: I made an oopsie",
      "locations": [
        {
          "line": 3,
          "column": 1
        }
      ],
      "path": [
        "hello"
      ],
      "extensions": {
        "errorType": "INTERNAL"
      }
    }
  ],
  "data": {
    "hello": null
  }
}

from dgs-framework.

Lajcik avatar Lajcik commented on August 16, 2024

That's a good tip, thanks. Still, I would argue the framework shouldn't swallow exceptions like that.

from dgs-framework.

srinivasankavitha avatar srinivasankavitha commented on August 16, 2024

That's a good tip, thanks. Still, I would argue the framework shouldn't swallow exceptions like that.

I see your point. However, we are leveraging graphql-java's execution here, so in order to get all of the properly formatted response with errors as part of the result, we need to go through the exception handling mechanism. You could argue that we can format the same where we catch the exception, but we do not have all information at that point, we just have the message, which I suppose we can add to the error that we construct.

from dgs-framework.

Lajcik avatar Lajcik commented on August 16, 2024

I'm not suggesting changing how exceptions are handled, only asking that it is properly logged in this case (ie to add logger.error()) - that would make debugging easier :)

from dgs-framework.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.