This might help:
http://docs.julialang.org/en/release-0.3/manual/embedding/#throwing-julia-exceptions

On Wed, Dec 24, 2014 at 10:41 PM, 良无 <[email protected]> wrote:

> In C or C++ code, I have a function:
>
> void funcname(...){
>    ...
>    assert(0);
>    ...
> }
>
>  if I run `ccall((:funcname, libpath), Void, (...), ...)` in Julia , it
>  will  terminate the Julia process.
>
> How can I replace assert() with other function to throw an error in Julia?
>
>
> > ccall((:funcname, libpath), Void, (...), ...)
>
> ERROR: ....
>
> I am sorry that I can not make it clear, and I just come to Julia from the
> R world.
>
> Thanks.  ;-)
>
> I'm afraid I still don't get it. What do you want to do?
>>
>>
>> On Dec 24, 2014, at 8:15 PM, 良无 <[email protected]> wrote:
>>
>> If you want to release an R package to CRAN, R Core will force you to
>> check this by R CMD check:
>>
>> - Compiled code should never terminate the R process within which it is
>> running. Thus C/C++ calls to assert/abort/exit, Fortran calls to STOP and
>> so on must be avoided. Nor may R code call q().
>>
>>
>> Le mercredi 24 décembre 2014 à 08:36 -0800, 良无 a écrit :
>>> > In my origin C++ code, I use assert(), but if I want to use this code
>>> > in Julia, maybe I need to replace it with other functions. In R, I can
>>> > use Rcpp::stop(). Is there any easy way to do it in Julia with C or C
>>> > ++ code.
>>> IIUC, you want to raise a Julia exception from C code, right?
>>>
>>> > And it seems that Julia does not have R CMD check like stuff yet. It
>>> > does not check this kind of issue.
>>> You mean, running a test suite? See
>>> http://docs.julialang.org/en/latest/stdlib/test/
>>>
>>> and how most packages do this, for example
>>> https://github.com/JuliaStats/StatsBase.jl/tree/master/test
>>>
>>>
>>> Regards
>>>
>>

Reply via email to