Re: How to use error message return values
- To: mathgroup at smc.vnet.net
- Subject: [mg37815] Re: [mg37705] How to use error message return values
- From: Omega Consulting <omega_consulting at yahoo.com>
- Date: Wed, 13 Nov 2002 01:13:29 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
At 11:29 PM 11/8/2002, flip wrote:
>Hello,
>
>I have a module which allows a user to definea matrix.
>
>This matrix may, of course, have an inverse or not have an inverse.
>
>As an example,
>
>In[15]:=
>c = {{5, 17}, {4, 15}};
>
>In[16]:=
>cinv = Inverse[c, Modulus -> 26]
>
>Out[16]=
>{{17, 5}, {18, 23}}
>
>In[17]:=
>c = {{5, 5}, {5, 5}};
>
>In[18]:=
>cinv = Inverse[c, Modulus -> 26]
>
>Inverse::"sing": "Matrix \!\({\(\({5, 5}\)\), \(\({5, 5}\)\)}\) is
>singular."
>
>Out[18]=
>Inverse[{{5, 5}, {5, 5}}, Modulus -> 26]
>
>How can I have my module fail in the case where an inverse does not exist?
>I want to end the module and give the user an error message stating to use a
>new matrix: this one does not have an inverse modulo 26.
>
>How can we in general take advantage of error messages or error return
>values in order to do this?
>
>Thanks, Flip
>
>Note: remove "_alpha" to send me an email.
There have been a couple responses using Check, which is just fine, but you
can also use the return value.
f[c_]:=
Module[{cinv},
cinv = Block[{$Messages={}},
Inverse[c, Modulus->26]
];
If[Head[cinv] === Inverse,
Message[...]; Return[$Failed]
];
...
]
--------------------------------------------------------------
Omega Consulting
"The final answer to your Mathematica needs"