diff options
| author | Elias Haugsbakk <[email protected]> | 2026-09-21 15:38:24 +0200 |
|---|---|---|
| committer | Elias Haugsbakk <[email protected]> | 2026-09-21 15:38:24 +0200 |
| commit | 025cee42eaf5f8b1c409e1a3a8fe3df8dac8d262 (patch) | |
| tree | 98674234b46b1c7c745a1ec01d21ab10276d938f /src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis | |
| parent | ef85091be57ecef84e97799d56b3d9c4600ca1c2 (diff) | |
refactor exception handling to differentiate internal exceptions from compilation failerdev
Diffstat (limited to 'src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis')
| -rw-r--r-- | src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis/Analyzer.java | 2 | ||||
| -rw-r--r-- | src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis/SemanticException.java | 16 |
2 files changed, 9 insertions, 9 deletions
diff --git a/src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis/Analyzer.java b/src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis/Analyzer.java index 2b4dbb9..7b2adf0 100644 --- a/src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis/Analyzer.java +++ b/src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis/Analyzer.java @@ -153,7 +153,7 @@ public class Analyzer { */ private Type typeOf(Expression expr) throws SemanticException { switch (expr) { - case null -> throw new SemanticException(expr.position, "Uttrykket kan ikke være null"); + case null -> throw new SemanticException(null, "Uttrykket kan ikke være null"); case StringLiteral _ -> { return new Type("streng", false); } diff --git a/src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis/SemanticException.java b/src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis/SemanticException.java index 7783fcc..f56522d 100644 --- a/src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis/SemanticException.java +++ b/src/main/java/no/eliashaugsbakk/kompilator/semanticAnalysis/SemanticException.java @@ -1,15 +1,15 @@ package no.eliashaugsbakk.kompilator.semanticAnalysis; +import no.eliashaugsbakk.kompilator.CompilationException; import no.eliashaugsbakk.kompilator.tokenization.Position; -public class SemanticException extends Exception { +public class SemanticException extends CompilationException { public SemanticException(Position position, String message) { - String pos; - if (position == null) { - pos = "ukjent posisjon"; - } else { - pos = position.line() + ":" + position.column(); - } - super(pos + ", " + message); + super(format(position, message)); + } + + private static String format(Position position, String message) { + String pos = position == null ? "ukjent posisjon" : position.line() + ":" + position.column(); + return pos + ", " + message; } } |
