I agree with Axel that a function like errReturn is a bad idea, though if 
Go updates/improves error handling, it's possible we'll get something like 
that (some of the error handling proposals have been similar to errReturn).

However, I don't see anything wrong with a function like Richard's 
errHandle(), *if it's at the top level in main*. I often have a function 
like this in main.go for CLIs. The signature might be:

inFile, err := os.ReadFile("Mydata.txt")
exitOnError(err, "cannot read file")

-Ben

On Wednesday, February 8, 2023 at 11:01:53 AM UTC+13 Richard Masci wrote:

> You said: "and FTR, I'd also consider your function a bad idea, but that's 
> none of my business" <- I'll be the first to say not all my ideas are good 
> ones, maybe this one isn't? Thanks for your response.
>
>
> On Tue, Feb 7, 2023 at 4:45 PM Axel Wagner <axel.wa...@googlemail.com> 
> wrote:
>
>> No, that is not possible. Only a `return` statement can return.
>> You *can* unwind the stack, using `panic` or `runtime.GoExit` (which is 
>> what `t.Fatal` does) but it's a bad idea in general (and FTR, I'd also 
>> consider your function a bad idea, but that's none of my business).
>>
>> On Tue, Feb 7, 2023 at 10:39 PM Rich <rma...@gmail.com> wrote:
>>
>>> In most of my code I create a function to handle errors. looks something 
>>> like this:
>>>
>>> func errorHandle(err error, str string, ex bool) {
>>>      if err != nil {
>>>           fmt.Printf("error: %s -- %v\n",str, err)
>>>      }
>>>      if ex {
>>>         os.Exit(1)
>>>      }
>>> }
>>>
>>> This cleans up my code:
>>>     inFile, err := os.ReadFile("Mydata.txt")
>>>     errorHandle(err,"read mydata.txt",true) // The true will exit
>>>
>>> So you see that I can exit the program when there is an error, what I 
>>> want to know is if it's possible to do the same thing inside a function, to 
>>> where I don't exit the program but return from the function:
>>>
>>> func OpenFile( filename string) []byte {
>>>     inFile,err := os.ReadFile(filename)
>>>     errReturn(err, "read "+filname,true)
>>>
>>> When there is an error it would return from the OpenFile function,
>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "golang-nuts" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to golang-nuts...@googlegroups.com.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/golang-nuts/2eec0130-3deb-4f60-a13e-d7c9d132771dn%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/golang-nuts/2eec0130-3deb-4f60-a13e-d7c9d132771dn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/c77b336e-85a8-4e3e-a64d-e5e3f1759c68n%40googlegroups.com.

Reply via email to