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; |             let result:string; | ||||||
|             try { |             try { | ||||||
|                 result = converter.convert(content); |                 result = converter.convert(content); | ||||||
|             } catch (error) { |             } catch (error:Error) { | ||||||
|                 if (typeof console === "object" && typeof console.log === "function") { |                 if (typeof console === "object" && typeof console.log === "function") { | ||||||
|                     console.log(error); |                     console.log(error); | ||||||
|                 } |                 } | ||||||
|  |                 step.message = error.message; | ||||||
|  |                 step.error = true; | ||||||
|                 result = null; |                 result = null; | ||||||
|             } |             } | ||||||
|             if (result === null) { |             if (result !== null) { | ||||||
|                 step.message = "Error converting. Not applicable?"; |  | ||||||
|                 step.error = true; |  | ||||||
|             } else { |  | ||||||
|                 step.message = ""; |                 step.message = ""; | ||||||
|                 step.error = false; |                 step.error = false; | ||||||
|                 if (result !== "") { |                 if (result !== "") { | ||||||
|  |  | ||||||
|  | @ -1,4 +1,5 @@ | ||||||
| import {Converter} from "./converter"; | import {Converter} from "./converter"; | ||||||
|  | import log = require("core-js/core/log"); | ||||||
| 
 | 
 | ||||||
| export class Base64Decoder implements Converter { | export class Base64Decoder implements Converter { | ||||||
|     getDisplayname():string { |     getDisplayname():string { | ||||||
|  | @ -10,6 +11,10 @@ export class Base64Decoder implements Converter { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     convert(input:string):string { |     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 { |     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 { |     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 { |     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"; | import {Converter} from "./converter"; | ||||||
| export class DecToHexConverter implements Converter { | export class DecToHexConverter implements Converter { | ||||||
|     getDisplayname():string { |     getDisplayname():string { | ||||||
|         return "Convert decimal to heximal"; |         return "Convert decimal to hexadecimal"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     getId():string { |     getId():string { | ||||||
|  | @ -9,6 +9,10 @@ export class DecToHexConverter implements Converter { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     convert(input:string):string { |     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"; | import {Converter} from "./converter"; | ||||||
| export class HexToDecConverter implements Converter { | export class HexToDecConverter implements Converter { | ||||||
|     getDisplayname():string { |     getDisplayname():string { | ||||||
|         return "Convert heximal to decimal"; |         return "Convert hexadecimal to decimal"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     getId():string { |     getId():string { | ||||||
|  | @ -9,6 +9,10 @@ export class HexToDecConverter implements Converter { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     convert(input:string):string { |     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 { |     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