added specific error messages to converters.
This commit is contained in:
		
							parent
							
								
									052897180b
								
							
						
					
					
						commit
						a1067de032
					
				
					 8 changed files with 42 additions and 14 deletions
				
			
		|  | @ -32,16 +32,15 @@ export class AppComponent extends OnInit { | |||
|             let result:string; | ||||
|             try { | ||||
|                 result = converter.convert(content); | ||||
|             } catch (error) { | ||||
|             } catch (error:Error) { | ||||
|                 if (typeof console === "object" && typeof console.log === "function") { | ||||
|                     console.log(error); | ||||
|                 } | ||||
|                 step.message = error.message; | ||||
|                 step.error = true; | ||||
|                 result = null; | ||||
|             } | ||||
|             if (result === null) { | ||||
|                 step.message = "Error converting. Not applicable?"; | ||||
|                 step.error = true; | ||||
|             } else { | ||||
|             if (result !== null) { | ||||
|                 step.message = ""; | ||||
|                 step.error = false; | ||||
|                 if (result !== "") { | ||||
|  |  | |||
|  | @ -1,4 +1,5 @@ | |||
| import {Converter} from "./converter"; | ||||
| import log = require("core-js/core/log"); | ||||
| 
 | ||||
| export class Base64Decoder implements Converter { | ||||
|     getDisplayname():string { | ||||
|  | @ -10,6 +11,10 @@ export class Base64Decoder implements Converter { | |||
|     } | ||||
| 
 | ||||
|     convert(input:string):string { | ||||
|         return atob(input); | ||||
|         try { | ||||
|             return atob(input); | ||||
|         } catch (exception) { | ||||
|             throw new Error("Could not decode base64 string. Maybe corrupt input?"); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -10,6 +10,10 @@ export class Base64Encoder implements Converter { | |||
|     } | ||||
| 
 | ||||
|     convert(input:string):string { | ||||
|         return btoa(input); | ||||
|         try { | ||||
|             return btoa(input); | ||||
|         } catch (exception) { | ||||
|             throw new Error("Could not encode base64 string. This should not happen, so why don't you just try again?"); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -9,6 +9,10 @@ export class BinToDecConverter implements Converter { | |||
|     } | ||||
| 
 | ||||
|     convert(input:string):string { | ||||
|         return parseInt(input, 2).toString(10); | ||||
|         let n:number = parseInt(input, 2); | ||||
|         if (isNaN(n)) { | ||||
|             throw new Error("The input seems not to be a valid binary number."); | ||||
|         } | ||||
|         return n.toString(10); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -9,6 +9,10 @@ export class DecToBinConverter implements Converter { | |||
|     } | ||||
| 
 | ||||
|     convert(input:string):string { | ||||
|         return parseInt(input, 10).toString(2); | ||||
|         let n:number = parseInt(input, 10); | ||||
|         if (isNaN(n)) { | ||||
|             throw new Error("The input seems not to be a valid integer."); | ||||
|         } | ||||
|         return n.toString(2); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| import {Converter} from "./converter"; | ||||
| export class DecToHexConverter implements Converter { | ||||
|     getDisplayname():string { | ||||
|         return "Convert decimal to heximal"; | ||||
|         return "Convert decimal to hexadecimal"; | ||||
|     } | ||||
| 
 | ||||
|     getId():string { | ||||
|  | @ -9,6 +9,10 @@ export class DecToHexConverter implements Converter { | |||
|     } | ||||
| 
 | ||||
|     convert(input:string):string { | ||||
|         return parseInt(input, 10).toString(16); | ||||
|         let n:number = parseInt(input, 10); | ||||
|         if (isNaN(n)) { | ||||
|             throw new Error("The input seems not to be a valid integer."); | ||||
|         } | ||||
|         return n.toString(16); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| import {Converter} from "./converter"; | ||||
| export class HexToDecConverter implements Converter { | ||||
|     getDisplayname():string { | ||||
|         return "Convert heximal to decimal"; | ||||
|         return "Convert hexadecimal to decimal"; | ||||
|     } | ||||
| 
 | ||||
|     getId():string { | ||||
|  | @ -9,6 +9,10 @@ export class HexToDecConverter implements Converter { | |||
|     } | ||||
| 
 | ||||
|     convert(input:string):string { | ||||
|         return parseInt(input, 16).toString(10); | ||||
|         let n:number = parseInt(input, 16); | ||||
|         if (isNaN(n)) { | ||||
|             throw new Error("The input seems not to be a valid hexadecimal number.") | ||||
|         } | ||||
|         return n.toString(10); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -14,6 +14,10 @@ export class QuotedPrintableDecoder implements Converter { | |||
|     } | ||||
| 
 | ||||
|     convert(input:string):string { | ||||
|         return this.nativeLibraryWrapperService.utf8.decode(this.nativeLibraryWrapperService.quotedPrintable.decode(input)); | ||||
|         try { | ||||
|             return this.nativeLibraryWrapperService.utf8.decode(this.nativeLibraryWrapperService.quotedPrintable.decode(input)); | ||||
|         } catch (error) { | ||||
|             throw new Error("The input can not be interpreted as quoted-printable. May be corrupt?"); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue