Java has different codestyle, i.e. camelCase instead of snake_case, brackets shouldn't break the line, no space before param blocks after signature, etc.
Also explicit throws is so 2000s, nowadays it would be a better approach to return class that encapsulates (Result | Error)
Also explicit throws is so 2000s, nowadays it would be a better approach to return class that encapsulates (Result | Error)