Commit 8f1bc91c authored by Paul Asmuth's avatar Paul Asmuth
Browse files

simplified error handling

parent 8f5d36f6
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@
using namespace fviz;

void printError(const ReturnCode& rc) {
  std::cerr << fmt::format("ERROR: {}", rc.getMessage()) << std::endl;
  std::cerr << fmt::format("ERROR: {}", rc.message) << std::endl;
}

int main(int argc, const char** argv) {
@@ -48,8 +48,8 @@ int main(int argc, const char** argv) {

  {
    auto rc = flag_parser.parseArgv(argc - 1, argv + 1);
    if (!rc.isSuccess()) {
      std::cerr << "ERROR: " << rc.getMessage() << std::endl;
    if (!rc) {
      std::cerr << "ERROR: " << rc.message << std::endl;
      return -1;
    }
  }
+12 −12
Original line number Diff line number Diff line
@@ -110,8 +110,8 @@ ReturnCode data_load_strings_csv(
  if (args.size() != 2 ||
      !expr_is_value(args[0]) ||
      !expr_is_value(args[1])) {
    return ReturnCode::errorf(
        "EARG",
    return errorf(
        ERROR,
        "invalid number of arguments to 'csv'; expected: 2, got: {}",
        "..."); // FIXME
  }
@@ -138,8 +138,8 @@ ReturnCode data_load_strings_csv(
  const auto& headers = data_csv.front();
  const auto& header = std::find(headers.begin(), headers.end(), column_name);
  if (header == headers.end()) {
    return ReturnCode::errorf(
        "EARG",
    return errorf(
        ERROR,
        "CSV column not found: {}",
        column_name);
  }
@@ -147,8 +147,8 @@ ReturnCode data_load_strings_csv(
  auto column_idx = std::distance(headers.begin(), header);
  for (auto row = ++data_csv.begin(); row != data_csv.end(); ++row) {
    if (row->size() < column_idx) {
      return ReturnCode::errorf(
          "EARG",
      return errorf(
          ERROR,
          "CSV invalid number of columns for row #{}",
          std::distance(data_csv.begin(), row));
    }
@@ -171,8 +171,8 @@ ReturnCode data_load_csv(
    try {
      values->push_back(from_user(std::stod(*v)));
    } catch (... ) {
      return ReturnCode::errorf(
          "EARG",
      return errorf(
          ERROR,
          "CSV invalid column in row #{}: '{}' is not a number",
          std::distance(values_str.begin(), v) + 1,
          *v);
@@ -186,8 +186,8 @@ ReturnCode data_load_strings(
    const Expr* expr,
    std::vector<std::string>* values) {
  if (!expr || !expr_is_list(expr)) {
    return ReturnCode::errorf(
        "EARG",
    return errorf(
        ERROR,
        "argument error; expected a value, got: {}",
        "..."); // FIXME
  }
@@ -205,8 +205,8 @@ ReturnCode data_load(
    const Expr* expr,
    std::vector<Measure>* values) {
  if (!expr || !expr_is_list(expr)) {
    return ReturnCode::errorf(
        "EARG",
    return errorf(
        ERROR,
        "argument error; expected a value, got: {}",
        "..."); // FIXME
  }
+4 −4
Original line number Diff line number Diff line
@@ -23,13 +23,13 @@ ReturnCode element_build(
    const Expr* expr,
    ElementRef* elem) {
  if (!expr || !expr_is_value(expr)) {
    return ReturnCode::error("EARG", "expected an element name");
    return error(ERROR, "expected an element name");
  }

  auto elem_name = expr_get_value(expr);
  auto elem_iter = env.element_map.elements.find(elem_name);
  if (elem_iter == env.element_map.elements.end()) {
    return ReturnCode::errorf("EARG", "no such element: {}", elem_name);
    return errorf(ERROR, "no such element: {}", elem_name);
  }

  return elem_iter->second(env, expr, elem);
@@ -41,7 +41,7 @@ ReturnCode element_build_all(
    std::vector<ElementRef>* elems) {
  for (; expr; expr = expr_next(expr)) {
    if (!expr_is_list(expr)) {
      return ReturnCode::error("EARG", "expected an element list");
      return error(ERROR, "expected an element list");
    }

    ElementRef elem;
@@ -60,7 +60,7 @@ ReturnCode element_build_list(
    const Expr* expr,
    std::vector<ElementRef>* elems) {
  if (!expr_is_list(expr)) {
    return ReturnCode::error("EARG", "expected an element list");
    return error(ERROR, "expected an element list");
  }

  return element_build_all(env, expr_get_list(expr), elems);
+2 −2
Original line number Diff line number Diff line
@@ -30,8 +30,8 @@ Environment::Environment() :

ReturnCode environment_setup_defaults(Environment* env) {
  if (!font_load(DefaultFont::HELVETICA_REGULAR, &env->font)) {
    return ReturnCode::error(
        "EARG",
    return error(
        ERROR,
        "unable to find default sans-sans font (Helvetica/Arial)");
  }

+2 −2
Original line number Diff line number Diff line
@@ -156,8 +156,8 @@ ReturnCode confgure_format(
    return confgure_format_string(prop, formatter);
  }

  return ReturnCode::errorf(
      "EARG",
  return errorf(
      ERROR,
      "invalid value '{}', expected one of: \n"
      "  - fixed\n"
      "  - scientific\n",
Loading