Bonjour,
j'étais en train de m'initier à Java à travers une recherche de kmer. Pour finir ce code, j'aimerais générer une exception sur le type d'argument et les données de celui-ci.
En clair j'aimerais tester si args[0] est de type String et ne possède que des caractères ATCG, sinon on génère une exception. Je me suis inspiré du cours sur les exceptions, mais je ne sais pas si on peut faire mieux ou plus simple. De plus, je ne sais pas si c'est propre d'utiliser un throws exception sur un main.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 public class DNAexception extends Exception { public DNAexception() {} /** * Crée une nouvelle instance de DNAexception * @param message Le message détaillant exception */ public DNAexception(String message) { super(message); } /** * Crée une nouvelle instance de DNAexception * @param cause L'exception à l'origine de cette exception */ public DNAexception(Throwable cause) { super(cause); } /** * Crée une nouvelle instance de DNAexception * @param message Le message détaillant exception * @param cause L'exception à l'origine de cette exception */ public DNAexception(String message, Throwable cause) { super(message, cause); } }Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 public class Bioinfo { public static boolean isDNAseq(String datas) { return datas.matches("[atcgATCG]+"); } /** * @param args the command line arguments * @throws bioinfo.DNAexception */ public static void main(String[] args) throws DNAexception { if (args.length == 2) { try { if (!isDNAseq(args[0])) throw new DNAexception("A sequence must be a String with ATCG bases."); } catch(DNAexception de) { throw new DNAexception("Bad Argument.",de); } int k = 0; String sequence = args[0]; try { k = Integer.parseInt(args[1]); } catch (NumberFormatException e) { throw new NumberFormatException(e + " : Second Argument must be an integer."); } } else { System.err.println("Args: <Sequence> <kmer>"); System.exit(-1); } } }
Partager