• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // © 2024 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 #ifndef __UJSON_H__
4 #define __UJSON_H__
5 
6 /*
7   Without this code, the output if the JSON library code
8   throws an exception would look like:
9   terminate called after throwing an instance of 'nlohmann::json_abi_v3_11_3::detail::parse_error'
10   what():  [json.exception.parse_error.101] parse error at line 1, column 1: attempting to parse an empty input; check that your input string or stream contains the expected JSON
11 Aborted (core dumped)
12 
13   (for example, if one of the JSON tests files contains an error or a file doesn't exist.)
14 
15   With this code, the output is:
16 
17   JSON exception thrown; modify tools/ctestfw//ujson.h to get diagnostics.
18   Exiting immediately.
19 
20   The entire #if block can be commented out in order to temporarily enable exceptions
21   and get a better parse error message (temporarily, while debugging).
22  */
23 
24 // Disable exceptions in JSON parser
25 
26 #if _HAS_EXCEPTIONS == 0
27 #define JSON_TRY_USER if(true)
28 #define JSON_CATCH_USER(exception) if(false)
29 #define JSON_THROW_USER(exception) { \
30     printf("JSON exception thrown; modify tools/toolutil/ujson.h to get diagnostics.\n\
31 Exiting immediately.\n"); \
32     exit(1); \
33 }
34 #endif
35 
36 #include "json-json.hpp"
37 
38 #endif /* __UJSON_H__ */
39