From c36c4a28eb508a3ebe07a740cd32d5d5c855c6a1 Mon Sep 17 00:00:00 2001 From: Project Nayuki Date: Fri, 26 Oct 2018 02:42:35 +0000 Subject: [PATCH] Updated Java, C++, Python, Rust worker programs to catch the new exception; removed error message string comparisons. --- cpp/QrCodeGeneratorWorker.cpp | 6 +----- java/io/nayuki/qrcodegen/QrCodeGeneratorWorker.java | 4 +--- python/qrcodegen-worker.py | 4 +--- rust/examples/qrcodegen-worker.rs | 4 ++-- 4 files changed, 5 insertions(+), 13 deletions(-) diff --git a/cpp/QrCodeGeneratorWorker.cpp b/cpp/QrCodeGeneratorWorker.cpp index b4669ba..2295593 100644 --- a/cpp/QrCodeGeneratorWorker.cpp +++ b/cpp/QrCodeGeneratorWorker.cpp @@ -91,11 +91,7 @@ int main() { std::cout << (qr.getModule(x, y) ? 1 : 0) << std::endl; } - } catch (const std::length_error &ex) { - if (strcmp(ex.what(), "Data too long") != 0) { - std::cerr << ex.what() << std::endl; - return EXIT_FAILURE; - } + } catch (const qrcodegen::data_too_long &ex) { std::cout << -1 << std::endl; } std::cout << std::flush; diff --git a/java/io/nayuki/qrcodegen/QrCodeGeneratorWorker.java b/java/io/nayuki/qrcodegen/QrCodeGeneratorWorker.java index e9d7ecc..801b1b3 100644 --- a/java/io/nayuki/qrcodegen/QrCodeGeneratorWorker.java +++ b/java/io/nayuki/qrcodegen/QrCodeGeneratorWorker.java @@ -91,9 +91,7 @@ public final class QrCodeGeneratorWorker { System.out.println(qr.getModule(x, y) ? 1 : 0); } - } catch (IllegalArgumentException e) { - if (!e.getMessage().equals("Data too long")) - throw e; + } catch (DataTooLongException e) { System.out.println(-1); } System.out.flush(); diff --git a/python/qrcodegen-worker.py b/python/qrcodegen-worker.py index c52548d..421b876 100644 --- a/python/qrcodegen-worker.py +++ b/python/qrcodegen-worker.py @@ -68,9 +68,7 @@ def main(): for x in range(qr.get_size()): print(1 if qr.get_module(x, y) else 0) - except ValueError as e: - if e.args[0] != "Data too long": - raise + except qrcodegen.DataTooLongError: print(-1) sys.stdout.flush() diff --git a/rust/examples/qrcodegen-worker.rs b/rust/examples/qrcodegen-worker.rs index f35ec80..a6c3ca3 100644 --- a/rust/examples/qrcodegen-worker.rs +++ b/rust/examples/qrcodegen-worker.rs @@ -79,7 +79,7 @@ fn main() { match QrCode::encode_segments_advanced(&segs, ECC_LEVELS[errcorlvl as usize], Version::new(minversion as u8), Version::new(maxversion as u8), msk, boostecl != 0) { - Some(qr) => { + Ok(qr) => { // Print grid of modules println!("{}", qr.version().value()); for y in 0 .. qr.size() { @@ -88,7 +88,7 @@ fn main() { } } }, - None => println!("-1"), + Err(_) => println!("-1"), } use std::io::Write; std::io::stdout().flush().unwrap();